深入解读Hadoop2.0,全新升级,实战性更强。
书是刘鹏教授主编的国内**本Hadoop编程书籍《实战Hadoop》的第二版。Hadoop堪称业界*经典的开源云计算和大数据平台软件。本书系统介绍了Hadoop 2.0生态圈的核心和扩展组件,包括:管理工具Ambari、分布式文件系统HDFS、分布式资源管理器YARN、分布式并行处理MapReduce、内存型计算框架Spark、数据流实时处理系统Storm、分布式锁服务ZooKeeper、分布式数据库HBase、数据仓库工具Hive,以及Pig、Oozie、Flume、Mahout等。
目 录
|第1章| 大数据组件概述 1
1.1 Google大数据组件 2
1.2 Apache大数据组件 6
1.2.1 Hadoop核心组件 7
1.2.2 基于MR的数据分析组件 10
1.2.3 数据库组件 16
1.2.4 BSP组件 19
1.2.5 基于YARN框架组件 20
1.2.6 基于YARN的编程类库组件 24
1.2.7 搜索引擎组件 25
1.2.8 工作流组件 26
1.2.9 数据流组件 27
1.2.10 序列化和持久化组件 29
1.2.11 调试工具 30
1.2.12 安全性组件 31
1.2.13 兼容性组件 33
1.2.14 集群部署与管理组件 33
习题 34
参考文献 35
|第2章| 大数据集群 39
2.1 大数据集群简介 40
2.2 大数据集群bigCstor 45
2.3 我的大数据集群littleCstor 48
2.4 小结 52
习题 52
参考文献 53
|第3章| 集群管理工具Ambari 55
3.1 Ambari简介 56
3.2 使用Ambari部署HDP 59
3.3 使用Ambari搭建littleCstor 62
3.3.1 相关约定 62
3.3.2 制定部署规划 63
3.3.3 搭建prelittleCstor 64
3.3.4 本地建仓 72
3.3.5 部署AmbariServer 77
3.3.6 搭建littleCstor 83
3.3.7 小结 105
3.4 使用Ambari管理littleCstor 110
3.5 小结 111
习题 111
参考文献 111
|第4章| 分布式文件系统HDFS 113
4.1 分布式存储引例 114
4.1.1 问题描述 114
4.1.2 常规解决方案 115
4.1.3 分布式解决方案 117
4.2 HDFS简介 124
4.2.1 HDFS逻辑架构 124
4.2.2 HDFS物理拓扑 129
4.2.3 HDFS部署 133
4.2.4 HDFS其他概念[9] 135
4.3 HDFS接口 138
4.4 实战HDFS Shell 140
4.4.1 HDFS文件级命令集 141
4.4.2 HDFS系统级命令集 143
4.5 实战WebHDFS 149
4.5.1 WebHDFS简介 149
4.5.2 WebHDFS示例 151
4.6 实战HDFS JAVA API 156
4.6.1 搭建开发环境 156
4.6.2 常规操作示例 158
4.7 实战HDFS大项目:用HDFS存储海量视频数据 163
4.7.1 应用场景 163
4.7.2 设计实现 164
习题 166
参考文献 166
|第5章| 分布式资源管理器YARN 169
5.1 分布式资源管理器引例 170
5.1.1 分布式资源管理器简介 170
5.1.2 分布式资源管理器架构 173
5.2 YARN简介 177
5.2.1 基础概念 177
5.2.2 物理拓扑 179
5.2.3 体系架构 180
5.2.4 集群部署 190
5.3 YARN接口 192
5.4 实战YARN Shell 194
5.4.1 系统级命令 195
5.4.2 程序级命令 197
5.4.3 其他辅助命令 199
5.5 实战YARN编程 199
5.5.1 常见并行化范式 199
5.5.2 YARN编程步骤 205
5.6 实战YARN编程之DistributedShell 213
5.6.1 DistributedShell简介 213
5.6.2 编写DistributedShell 214
5.7 实战YARN编程之三大范式 221
5.7.1 DistributedShell 222
5.7.2 MapReduce 222
5.7.3 Giraph 223
习题 224
参考文献 224
|第6章| 分布式并行处理MapReduce 225
6.1 并行化范式M-S-R引例 226
6.1.1 问题描述 226
6.1.2 常规解决方案 227
6.1.3 分布式解决方案 228
6.1.4 小结 234
6.2 MapReduce简介[1] 234
6.2.1 基本概念 235
6.2.2 编程模型 237
6.2.3 集群部署 239
6.2.4 体系架构 241
6.2.5 执行过程 245
6.3 MapReduce接口 247
6.4 实战MapReduce Shell 250
6.5 实战MapReduce编程 253
6.6 实战MapReduce编程之WordCount[3] 256
6.6.1 WordCount代码分析 256
6.6.2 WordCount处理过程 260
6.7 实战MapReduce编程之SecondarySort 261
6.8 实战MapReduce编程之倒排索引 265
6.8.1 简介 265
6.8.2 分析与设计 266
6.8.3 倒排索引完整源码 269
6.9 实战MapReduce之性能优化 271
习题 280
参考文献 280
|第7章| 分布式锁服务ZooKeeper 281
7.1 ZooKeeper简介 282
7.1.1 ZooKeeper应用场景 282
7.1.2 ZooKeeper体系架构[3] 285
7.1.3 ZooKeeper服务模型 287
7.1.4 ZooKeeper部署 289
7.2 ZooKeeper接口 292
7.2.1 接口汇总 292
7.2.2 实战ZooKeeper Shell 292
7.3 实战ZooKeeper编程 294
7.4 实战ZooKeeper之进程通信 296
7.5 实战ZooKeeper之进程调度系统 297
7.5.1 设计方案 297
7.5.2 设计实现 297
7.6 实战ZooKeeper之实现NameNode自动切换 303
7.6.1 设计思想 304
7.6.2 详细设计 304
7.6.3 编码 305
7.6.4 实战总结 310
习题 311
参考文献 311
|第8章| 分布式数据库HBase 313
8.1 HBase简介 314
8.1.1 体系架构 314
8.1.2 数据模型 320
8.1.3 集群部署[21] 321
8.2 HBase接口 326
8.3 实战HBase Shell 327
8.4 实战HBase API 329
8.5 实战HBase之综例 330
8.6 实战HBase之使用MapReduce构建索引 332
8.6.1 索引表蓝图 332
8.6.2 HBase和MapReduce 333
8.6.3 实现索引 334
习题 336
参考文献 337
|第9章| 内存型计算框架Spark 339
9.1 Spark简介 340
9.1.1 基础概念 340
9.1.2 体系架构 346
9.1.3 集群部署 358
9.1.4 计算模型 366
9.1.5 工作机制 374
9.1.6 其他特性 375
9.2 Spark接口 377
9.3 实战Spark Shell 379
9.3.1 集群管理 379
9.3.2 任务管理 381
9.4 实战Spark编程之RDD 383
9.4.1 RDD属性 383
9.4.2 并行化证明RDD、调试RDD 386
9.4.3 RDD操作 389
9.5 实战Spark之WordCount[3] 396
9.6 实战Spark之MLLib 397
习题 398
参考文献 398
|第10章| 数据流实时处理系统Storm 399
10.1 Storm简介 400
10.1.1 与Hadoop的关系 400
10.1.2 基础概念 402
10.1.3 体系架构 408
10.1.4 集群部署[4] 412
10.1.5 计算模型 421
10.2 Storm接口 450
10.3 实战Storm Shell 452
10.4 实战Storm API之RollingTopWords 455
习题 457
参考文献 458
|第11章| 数据仓库工具Hive 459
11.1 Hive简介 460
11.1.1 工作原理 460
11.1.2 体系架构 461
11.1.3 计算模型 462
11.1.4 集群部署 463
11.2 Hive接口 467
11.2.1 接口汇总 467
11.2.2 实战Hive Web 467
11.3 实战Hive Shell 468
11.3.1 DDL Operations 468
11.3.2 DML Operations 469
11.3.3 SQL Operations 470
11.4 实战Hive之复杂语句 471
11.5 实战Hive之综合示例 473
11.6 实战Hive API接口 474
11.6.1 UDF编程示例[3] 474
11.6.2 UDAF编程示例 475
习题 477
参考文献 477
|第12章| 其他常见大数据组件 479
12.1 Pig 480
12.1.1 Pig简介 480
12.1.2 实战Pig 483
12.2 Oozie 483
12.2.1 Oozie简介 483
12.2.2 实战Oozie[4] 485
12.3 Flume 487
12.3.1 Flume简介 487
12.3.2 Flume入门 489
12.4 Mahout 492
12.4.1 Mahout简介 492
12.4.2 Mahout入门 492
习题 494
参考文献 494
|附录A| 手工部署Hadoop2.0 495
一、部署综述 496
二、部署步骤 500