本书是一本Hadoop学习入门参考书,全书共11章,分为基础篇和提高篇两部分。基础篇包括第 1~6章,具体包括Hadoop概述、Hadoop基础环境配置、分布式存储HDFS、计算系统MapReduce、计算模型Yarn、数据云盘。提高篇包括第7~11章,具体包括协调系统Zookeeper、Hadoop数据库Hbase、Hadoop数据仓库Hive、Hadoop数据采集Flume、OTA离线数据分析平台。全书内容结构合理,知识点全面,讲解详细,重点难点突出。 本书适合作为院校计算机及相关专业大数据课程的教材,也可供学习者自学参考。 基础篇 1 第1章 Hadoop概述 1 1.1 Hadoop简介 1 1.2 Hadoop相关项目 2 1.3 Hadoop来源 3 1.4 Hadoop的发展史 4 1.5 Hadoop特点 5 1.6 Hadoop体系架构 6 1.6.1 HDFS体系结构 7 1.6.2 MapReduce体系结构 7 本章小结 8 习题 8 第2章 Hadoop基础环境配置 9 2.1 准备Linux环境 9 2.1.1 安装VMware12虚拟机 9 2.1.2 部署CentOS 64位操作系统 11 2.2 Linux配置 16 2.2.1 什么是Linux 16 2.2.2 Linux发行版 16 2.2.3 配置网络 16 2.2.4 Linux终端 17 2.3 Hadoop环境搭建 21 2.3.1 JDK安装和测试 21 2.3.2 Hadoop安装和配置 25 2.3.3 SSH免密码配置 31 本章小结 33 习题 34 第3章 分布式存储HDFS 35 3.1 HDFS概念 35 3.1.1 HDFS简介 35 3.1.2 HDFS设计思路和理念 35 3.2 HDFS体系结构 36 3.3 HDFS文件存储机制 36 3.4 HDFS Shell介绍 39 3.4.1 命令格式 39 3.4.2 HDFS用户命令 40 3.4.3 HDFS管理员命令 40 3.5 Hadoop项目创建 47 3.6 RPC通信原理 53 3.6.1 什么是Hadoop的RPC 53 3.6.2 RPC采用的模式 53 3.7 分布式文件系统操作类 59 本章小结 69 习题 69 第4章 计算系统MapReduce 70 4.1 MapReduce概念 70 4.1.1 MapReduce简介 70 4.1.2 MapReduce 数据类型与格式 71 4.1.3 数据类型Writable接口 71 4.1.4 Hadoop序列化机制 72 4.2 MapReduce架构 72 4.2.1 数据分片 72 4.2.2 MapReduce执行过程 73 4.2.3 Mapper执行过程 73 4.2.4 Reducer执行过程 74 4.2.5 Shuffle过程 75 4.3 第一个MapReduce案例 75 4.4 MapReduce接口类 79 4.4.1 MapReduce输入的处理类 79 4.4.2 MapReduce输出的处理类 80 本章小结 87 习题 87 第5章 计算模型Yarn 88 5.1 Yarn概述 88 5.1.1 Yarn简介 88 5.1.2 Yarn的组成 89 5.2 Yarn的执行过程 89 5.3 新旧MapReduce的对比 90 本章小结 101 习题 101 第6章 数据云盘 102 6.1 项目概述 102 6.2 功能需求 102 6.3 软件开发需求 102 6.4 效果展示 103 6.5 系统开发 104 本章小结 125 习题 125 提高篇 126 第7章 协调系统Zookeeper 126 7.1 Zookeeper概述 126 7.1.1 Zookeeper简介 126 7.1.2 Zookeeper数据模型 127 7.1.3 Zookeeper特征 127 7.1.4 Zookeeper工作原理 128 7.2 Zookeeper术语 129 7.2.1 节点 129 7.2.2 角色 129 7.2.3 顺序号 129 7.2.4 观察 129 7.2.5 Leader选举 129 7.3 事件 130 7.4 Zookeeper Shell操作 130 7.4.1 Zookeeper服务命令 130 7.4.2 Zookeeper客户端命令 134 7.5 Zookeeper API操作 137 本章小结 156 习题 156 第8章 Hadoop数据库Hbase 157 8.1 Hbase概述 157 8.1.1 Hbase简介 157 8.1.2 Hbase优势和特点 158 8.1.3 Hbase专业术语 158 8.2 Hbase架构 158 8.2.1 角色 159 8.2.2 Hbase物理存储和逻辑视图 160 8.3 Hbase Shell操作 163 8.4 Hbase API操作 168 8.5 Hbase 过滤器 182 8.5.1 过滤器的含义 182 8.5.2 过滤器的比较操作符 182 8.5.3 过滤器的比较器 183 本章小结 193 习题 193 第9章 Hadoop数据仓库Hive 194 9.1 Hive概述 194 9.1.1 Hive简介 194 9.1.2 Hive数据类型 194 9.1.3 Hive Metastore 195 9.1.4 Hive存储和压缩 195 9.1.5 Hive与传统数据库对比 195 9.2 Hive的系统架构 196 9.3 Hive的数据模型 200 9.3.1 内部表 200 9.3.2 外部表 200 9.3.3 分区表 201 9.3.4 桶表 201 9.4 Hive Shell操作 201 9.5 Hive API操作 208 9.6 Hive内置函数和UDF 215 9.6.1 内置函数 215 9.6.2 UDF函数 215 本章小结 222 习题 222 第10章 Hadoop数据采集Flume 223 10.1 Flume概述 223 10.1.1 Flume简介 223 10.1.2 Flume核心概念 223 10.1.3 Flume 系统要求 224 10.2 Flume架构 224 10.3 Flume常见操作命令 225 10.4 Flume环境搭建 226 10.4.1 设置一个Agent 226 10.4.2 启动Agent 226 本章小结 231 习题 231 第11章 OTA离线数据分析平台 232 11.1 项目概述 232 11.2 功能需求 233 11.3 软件开发关键技术 233 11.4 效果展示 233 11.5 平台搭建与测试 233 11.5.1 配置ssh免密码登录 233 11.5.2 配置JDK 234 11.5.3 配置Hadoop 236 11.5.4 配置Hive 242 11.6 数据收集 247 11.6.1 解压Flume 247 11.6.2 修改配置文件 248 11.6.3 启动Flume 248 11.6.4 校验数据 248 11.7 数据分析 249 11.7.1 数据清洗 249 11.7.2 ETL编程 256 11.7.3 业务分析 261 11.7.4 配置Sqoop 264 11.7.5 从HDFS导出数据至MySQL 267 11.8 数据展示 268 11.8.1 搭建Web开发环境 268 11.8.2 添加代码 272 11.8.3 项目结构 282 11.8.4 启动Tomcat 283 11.8.5 访问Web页面 283 本章小结 283 习题 284 11 2.2 Linux配置 16 2.2.1 什么是Linux 16 2.2.2 Linux发行版 16 2.2.3 配置网络 16 2.2.4 Linux终端 17 2.3 Hadoop环境搭建 21 2.3.1 JDK安装和测试 21 2.3.2 Hadoop安装和配置 25 2.3.3 SSH免密码配置 31 本章小结 33 习题 34 第3章 分布式存储HDFS 35 3.1 HDFS概念 35 3.1.1 HDFS简介 35 3.1.2 HDFS设计思路和理念 35 3.2 HDFS体系结构 36 3.3 HDFS文件存储机制 36 3.4 HDFS Shell介绍 39 3.4.1 命令格式 39 3.4.2 HDFS用户命令 40 3.4.3 HDFS管理员命令 40 3.5 Hadoop项目创建 47 3.6 RPC通信原理 53 3.6.1 什么是Hadoop的RPC 53 3.6.2 RPC采用的模式 53 3.7 分布式文件系统操作类 59 本章小结 69 习题 69 第4章 计算系统MapReduce 70 4.1 MapReduce概念 70 4.1.1 MapReduce简介 70 4.1.2 MapReduce 数据类型与格式 71 4.1.3 数据类型Writable接口 71 4.1.4 Hadoop序列化机制 72 4.2 MapReduce架构 72 4.2.1 数据分片 72 4.2.2 MapReduce执行过程 73 4.2.3 Mapper执行过程 73 4.2.4 Reducer执行过程 74 4.2.5 Shuffle过程 75 4.3 第一个MapReduce案例 75 4.4 MapReduce接口类 79 4.4.1 MapReduce输入的处理类 79 4.4.2 MapReduce输出的处理类 80 本章小结 87 习题 87 第5章 计算模型Yarn 88 5.1 Yarn概述 88 5.1.1 Yarn简介 88 5.1.2 Yarn的组成 89 5.2 Yarn的执行过程 89 5.3 新旧MapReduce的对比 90 本章小结 101 习题 101 第6章 数据云盘 102 6.1 项目概述 102 6.2 功能需求 102 6.3 软件开发需求 102 6.4 效果展示 103 6.5 系统开发 104 本章小结 125 习题 125 提高篇 126 第7章 协调系统Zookeeper 126 7.1 Zookeeper概述 126 7.1.1 Zookeeper简介 126 7.1.2 Zookeeper数据模型 127 7.1.3 Zookeeper特征 127 7.1.4 Zookeeper工作原理 128 7.2 Zookeeper术语 129 7.2.1 节点 129 7.2.2 角色 129 7.2.3 顺序号 129 7.2.4 观察 129 7.2.5 Leader选举 129 7.3 事件 130 7.4 Zookeeper Shell操作 130 7.4.1 Zookeeper服务命令 130 7.4.2 Zookeeper客户端命令 134 7.5 Zookeeper API操作 137 本章小结 156 习题 156 第8章 Hadoop数据库Hbase 157 8.1 Hbase概述 157 8.1.1 Hbase简介 157 8.1.2 Hbase优势和特点 158 8.1.3 Hbase专业术语 158 8.2 Hbase架构 158 8.2.1 角色 159 8.2.2 Hbase物理存储和逻辑视图 160 8.3 Hbase Shell操作 163 8.4 Hbase API操作 168 8.5 Hbase 过滤器 182 8.5.1 过滤器的含义 182 8.5.2 过滤器的比较操作符 182 8.5.3 过滤器的比较器 183 本章小结 193 习题 193 第9章 Hadoop数据仓库Hive 194 9.1 Hive概述 194 9.1.1 Hive简介 194 9.1.2 Hive数据类型 194 9.1.3 Hive Metastore 195 9.1.4 Hive存储和压缩 195 9.1.5 Hive与传统数据库对比 195 9.2 Hive的系统架构 196 9.3 Hive的数据模型 200 9.3.1 内部表 200 9.3.2 外部表 200 9.3.3 分区表 201 9.3.4 桶表 201 9.4 Hive Shell操作 201 9.5 Hive API操作 208 9.6 Hive内置函数和UDF 215 9.6.1 内置函数 215 9.6.2 UDF函数 215 本章小结 222 习题 222 第10章 Hadoop数据采集Flume 223 10.1 Flume概述 223 10.1.1 Flume简介 223 10.1.2 Flume核心概念 223 10.1.3 Flume 系统要求 224 10.2 Flume架构 224 10.3 Flume常见操作命令 225 10.4 Flume环境搭建 226 10.4.1 设置一个Agent 226 10.4.2 启动Agent 226 本章小结 231 习题 231 第11章 OTA离线数据分析平台 232 11.1 项目概述 232 11.2 功能需求 233 11.3 软件开发关键技术 233 11.4 效果展示 233 11.5 平台搭建与测试 233 11.5.1 配置ssh免密码登录 233 11.5.2 配置JDK 234 11.5.3 配置Hadoop 236 11.5.4 配置Hive 242 11.6 数据收集 247 11.6.1 解压Flume 247 11.6.2 修改配置文件 248 11.6.3 启动Flume 248 11.6.4 校验数据 248 11.7 数据分析 249 11.7.1 数据清洗 249 11.7.2 ETL编程 256 11.7.3 业务分析 261 11.7.4 配置Sqoop 264 11.7.5 从HDFS导出数据至MySQL 267 11.8 数据展示 268 11.8.1 搭建Web开发环境 268 11.8.2 添加代码 272 11.8.3 项目结构 282 11.8.4 启动Tomcat 283 11.8.5 访问Web页面 283 本章小结 283 习题 284