本书将大数据技术生态圈主流技术框架的应用与发展、搭建Hadoop大数据分布式系统集群平台、大数据分布式文件系统HDFS(Hadoop Distributed File System)、大数据分布式并行计算框架MapReduce、大数据汽车销售数据统计分析项目5大模块分为11章内容进行阐述。具体分布情况如下:第1章是大数据概论,介绍大数据的发展背景及基本概念;第2章是搭建Hadoop分布式集群;第3~6章是HDFS分布式文件系统入门、HDFS接口、HDFS的运行机制、Hadoop I/O流操作;第7~10章是初识MapReduce编程模型、MapReduce应用编程开发、MapReduce编程案例、MapReduce运行机制与YARN平台;第11章是汽车销售数据统计分析项目实战。本书将理论与实践相结合,介绍了大数据的核心技术,并通过介绍一个企业的开发项目,深入讲解大数据技术在实际工作中的应用。
本书是为所有热爱大数据、打算从事大数据相关工作的读者而编写的,适合有Java编程基础的学习者参考使用,也适合作为高等院校、培训机构的大数据技术教材。
1. 强调实战
2. 覆盖大数据行业主流技术岗位,紧跟市场与企业步伐
3. 来自企业的骨灰级大咖授课
4. 内容结构完整,根据循序渐进的认识规律设计章节顺序
杨力,原普开数据大数据架构师兼教学总监,新奥集团公司云数据平台项目首席架构师,京东万象大数据平台缔造人之一,二六三网络通信反垃圾邮件系统平台项目经理。 现任沈阳兄弟连教学总监。兄弟连是国内知名的教育培训机构,目前已在新三板上市。其出版的细说系列,市场反映良好。
第1章 大数据概论 1
1.1 大数据的学习基础 1
1.2 大数据的背景 2
1.3 对大数据的不同认识 2
1.3.1 资深编程者眼中的大数据 2
1.3.2 营销者和学者眼中的大数据 3
1.3.3 商家看大数据 4
1.4 大数据的行业案例 4
1.4.1 电子地图 4
1.4.2 电子商务——用户画像 5
1.5 大数据的基本概念 6
1.5.1 两个核心 6
1.5.2 分布式存储 6
1.5.3 分布式计算 7
1.6 大数据技术生态圈 7
本章总结 8
本章习题 8
第2章 搭建Hadoop分布式集群 9
2.1 云平台 9
2.1.1 了解云平台 9
2.1.2 安装VMware软件 9
2.2 安装CentOS 6 10
2.2.1 安装CentOS 6 10
2.2.2 安装中的关键问题 15
2.2.3 克隆HadoopSlave和HadoopSlave1 16
2.2.4 安装SSH客户端传输软件 18
2.2.5 安装Xshell 20
2.3 Linux系统配置 23
2.4 Hadoop的配置部署 39
本章总结 47
本章习题 47
第3章 HDFS入门 48
3.1 Hadoop分布式文件系统HDFS 48
3.1.1 认识HDFS 48
3.1.2 HDFS的优势 49
3.1.3 HDFS局限性 50
3.1.4 HDFS特性 51
3.2 HDFS核心设计 52
3.2.1 数据块 53
3.2.2 数据块复制 53
3.2.3 数据块副本的存放策略 54
3.2.4 机架感知 55
3.2.5 数据块的备份数 56
3.2.6 安全模式 56
3.2.7 负载均衡 57
3.2.8 心跳机制 60
3.3 HDFS体系结构 60
3.3.1 主从架构 61
3.3.2 核心组件功能 61
3.3.3 数据块损坏处理 63
本章总结 64
本章习题 64
第4章 HDFS接口 65
4.1 HDFS命令行接口 65
4.2 HDFS Java接口 67
4.2.1 在Linux虚拟机中安装Eclipse 68
4.2.2 从Hadoop URL读取数据 69
4.2.3 使用FileSystem读取文件 70
4.2.4 FSDataInputStream对象随机读取 71
4.2.5 使用FileSystem写入数据 72
4.2.6 FSDataOutputStream对象批量写入 73
4.2.7 查询文件状态FileStatus 74
4.2.8 创建目录 75
4.2.9 删除文件与目录 76
本章总结 77
本章习题 77
第5章 HDFS的运行机制 78
5.1 HDFS中数据流的读写 78
5.1.1 RPC流程 78
5.1.2 RPC实现模型 79
5.1.3 RPC Client主要流程 81
5.1.4 RPC Server实现模型 82
5.1.5 文件读取 83
5.1.6 文件写入 84
5.2 HA机制 85
5.2.1 HDFS的HA机制 85
5.2.2 集群节点任务规划 87
5.2.3 初识ZooKeeper 87
5.2.4 安装部署ZooKeeper 89
5.2.5 格式化ZooKeeper集群 93
5.2.6 配置Hadoop 94
5.2.7 启动JournalNode共享存储集群 99
5.2.8 格式化ActiveNameNode 100
5.2.9 启动ZooKeeperFailoverController 101
5.2.10 启动ActiveNameNode 101
5.2.11 格式化StandbyNameNode 102
5.2.12 启动所有DataNode节点 102
5.2.13 验证HA的故障自动转移 103
5.3 Federation机制 105
5.3.1 初始HDFS Federation机制 105
5.3.2 HDFS Federation架构原理 106
本章总结 107
本章习题 107
第6章 Hadoop I/O流操作 108
6.1 数据完整性 108
6.1.1 数据发生错误 108
6.1.2 数据的检测 109
6.1.3 数据完整性机制 109
6.2 压缩 111
6.2.1 压缩格式 111
6.2.2 Hadoop中对压缩格式的实现Codec 111
6.2.3 压缩格式是否支持切分 114
6.3 序列化 114
6.3.1 序列化简介 114
6.3.2 反序列化 115
6.3.3 序列化的分布式应用 115
6.3.4 初识Hadoop序列化 115
6.3.5 Hadoop序列化实现 116
6.3.6 接口Comparable & Comparator与WritableComparable & WritableComparator 117
6.3.7 Writable类 123
6.4 基于文件的数据结构SequenceFile 125
本章总结 127
本章习题 127
第7章 初识MapReduce编程模型 128
7.1 MapReduce编程框架 128
7.1.1 函数式编程模型 128
7.1.2 MapReduce编程模型概念 129
7.1.3 MapReduce的设计目标 130
7.2 WordCount编程实例 130
7.2.1 案例需求 130
7.2.2 搭建开发环境Eclipse 131
7.2.3 代码实现 132
7.2.4 代码测试 135
7.2.5 案例剖析 139
7.3 Hadoop MapReduce架构 141
7.3.1 Hadoop MapReduce架构的基本概念 141
7.3.2 MapReduce架构核心组件 142
本章总结 144
本章习题 144
第8章 MapReduce应用编程开发 145
8.1 MapReduce编程开发 145
8.1.1 设计思路 145
8.1.2 搜索引擎数据处理实战 147
8.2 MapReduce在集群上的运作 152
8.2.1 打包作业 152
8.2.2 启动作业 154
8.2.3 通过WebUI查看Job状态 154
8.3 MapReduce的类型与格式 155
8.3.1 combiner函数 155
8.3.2 MapReduce框架Partitioner分区方法 157
8.3.3 MapReduce输入格式 158
本章总结 166
本章习题 166
第9章 MapReduce编程案例 167
9.1 数据去重 167
9.1.1 实例表述 167
9.1.2 设计思路 168
9.1.3 程序代码 168
9.1.4 代码结果 169
9.2 数据排序 170
9.2.1 实例表述 171
9.2.2 设计思路 171
9.2.3 程序代码 171
9.2.4 代码结果 173
9.3 平均成绩 174
9.3.1 实例表述 174
9.3.2 设计思路 175
9.3.3 程序代码 175
9.3.4 代码结果 177
9.4 多表关联 178
9.4.1 实例表述 178
9.4.2 设计思路 179
9.4.3 程序代码 179
9.4.4 代码结果 181
9.5 二次排序 182
9.5.1 实例描述 182
9.5.2 设计思路 182
9.5.3 程序代码 182
9.5.4 代码结果 185
本章总结 186
本章习题 186
第10章 MapReduce运行机制与YARN平台 187
10.1 剖析MapReduce作业运行机制 187
10.1.1 提交作业的方式 187
10.1.2 作业的运行组件 187
10.1.3 作业的运行解析 188
10.2 Shuffle和排序 190
10.2.1 Mapper端 190
10.2.2 Reducer端 193
10.2.3 MapReduce性能调优 196
10.3 任务的执行 197
10.4 作业的调度 199
10.4.1 先进先出调度器 199
10.4.2 公平调度器 199
10.4.3 计算能力调度器 200
10.5 YARN平台简介 200
10.5.1 YARN的诞生 200
10.5.2 YARN的工作原理 200
10.6 YARN平台架构 201
本章总结 204
本章习题 204
第11章 汽车销售数据统计分析项目 205
11.1 数据概况 205
11.2 项目实战 206
11.2.1 统计乘用车辆和商用车辆的数量和销售额分布 206
11.2.2 统计某年每个月的汽车销售数量的比例 208
11.2.3 统计某个月份各市区县的汽车销售的数量 210
11.2.4 用户数据市场分析——统计买车的男女比例 213
11.2.5 统计不同所有权、型号和类型汽车的销售数量 216
11.2.6 统计不同车型的用户的年龄和性别 218
11.2.7 统计分析不同车型销售数据 219
11.2.8 通过不同类型(品牌)汽车销售情况统计发动机型号和燃料种类 222
11.2.9 统计同排量不同品牌汽车的销售量 224
本章总结 226
本章习题 226