第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 安全性组件 30
1.2.13 兼容性组件 32
1.2.14 集群部署与管理组件 33
习题 33
参考文献 34
第2章 大数据集群 37
2.1 大数据集群简介 38
2.2 大数据集群bigCstor 43
2.3 我的大数据集群littleCstor 46
2.4 小结 50
习题 50
参考文献 51
第3章 集群管理工具Ambari 53
3.1 Ambari简介 54
3.2 使用Ambari部署HDP 57
3.3 使用Ambari搭建littleCstor 60
3.3.1 相关约定 60
3.3.2 制定部署规划 61
3.3.3 搭建prelittleCstor 62
3.3.4 本地建仓 70
3.3.5 部署AmbariServer 74
3.3.6 搭建littleCstor 81
3.3.7 小结 104
3.4 使用Ambari管理littleCstor 109
3.5 小结 110
习题 110
参考文献 110
第4章 分布式文件系统HDFS 111
4.1 分布式存储引例 112
4.1.1 问题描述 112
4.1.2 常规解决方案 113
4.1.3 分布式解决方案 115
4.2 HDFS简介 122
4.2.1 HDFS逻辑架构 122
4.2.2 HDFS物理拓扑 127
4.2.3 HDFS部署 131
4.2.4 HDFS其他概念 133
4.3 HDFS接口 136
4.4 实战HDFS Shell 139
4.4.1 HDFS文件级命令集 139
4.4.2 HDFS系统级命令集 141
4.5 实战WebHDFS 148
4.5.1 WebHDFS简介 148
4.5.2 WebHDFS示例 150
4.6 实战HDFS JAVA API 155
4.6.1 搭建开发环境 155
4.6.2 常规操作示例 157
4.7 实战HDFS大项目:用HDFS存储海量视频数据 162
4.7.1 应用场景 162
4.7.2 设计实现 162
习题 164
参考文献 165
第5章 分布式资源管理器YARN 167
5.1 分布式资源管理器引例 168
5.1.1 分布式资源管理器简介 168
5.1.2 分布式资源管理器架构 171
5.2 YARN简介 174
5.2.1 基础概念 174
5.2.2 物理拓扑 177
5.2.3 体系架构 178
5.2.4 集群部署 187
5.3 YARN接口 189
5.4 实战YARN Shell 192
5.4.1 系统级命令 192
5.4.2 程序级命令 195
5.4.3 其他辅助命令 197
5.5 实战YARN编程 198
5.5.1 常见并行化范式 198
5.5.2 YARN编程步骤 204
5.6 实战YARN编程之DistributedShell 212
5.6.1 DistributedShell简介 212
5.6.2 编写DistributedShell 213
5.7 实战YARN编程之三大范式 220
5.7.1 Distributed Shell 221
5.7.2 MapReduce 221
5.7.3 Giraph 222
习题 223
参考文献 223
第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简介 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编程 254
6.6 实战MapReduce编程之WordCount 257
6.6.1 WordCount代码分析 257
6.6.2 WordCount处理过程 260
6.7 实战MapReduce编程之SecondarySort 261
6.8 实战MapReduce编程之倒排索引 266
6.8.1 简介 266
6.8.2 分析与设计 267
6.8.3 倒排索引完整源码 269
6.9 实战MapReduce之性能优化 271
习题 280
参考文献 281
第7章 分布式锁服务ZooKeeper 283
7.1 ZooKeeper简介 284
7.1.1 ZooKeeper应用场景 284
7.1.2 ZooKeeper体系架构 287
7.1.3 ZooKeeper服务模型 289
7.1.4 ZooKeeper部署 290
7.2 ZooKeeper接口 293
7.2.1 接口汇总 293
7.2.2 实战ZooKeeper Shell 294
7.3 实战ZooKeeper编程 296
7.4 实战ZooKeeper之进程通信 298
7.5 实战ZooKeeper之进程调度系统 299
7.5.1 设计方案 299
7.5.2 设计实现 299
7.6 实战ZooKeeper之实现NameNode自动切换 305
7.6.1 设计思想 306
7.6.2 详细设计 306
7.6.3 编码 307
7.6.4 实战总结 312
习题 312
参考文献 313
第8章 分布式数据库HBase 315
8.1 HBase简介 316
8.1.1 体系架构 316
8.1.2 数据模型 322
8.1.3 集群部署 323
8.2 HBase接口 328
8.3 实战HBase Shell 329
8.4 实战HBase API 331
8.5 实战HBase之综例 333
8.6 实战HBase之使用MapReduce构建索引 334
8.6.1 索引表蓝图 334
8.6.2 HBase和MapReduce 335
8.6.3 实现索引 336
习题 339
参考文献 339
第9章 内存型计算框架Spark 341
9.1 Spark简介 342
9.1.1 基础概念 342
9.1.2 体系架构 348
9.1.3 集群部署 359
9.1.4 计算模型 367
9.1.5 工作机制 375
9.1.6 其他特性 376
9.2 Spark接口 377
9.3 实战Spark Shell 380
9.3.1 集群管理 380
9.3.2 任务管理 382
9.4 实战Spark编程之RDD 384
9.4.1 RDD属性 384
9.4.2 并行化证明RDD、调试RDD 386
9.4.3 RDD操作 389
9.5 实战Spark之WordCount 396
9.6 实战Spark之MLLib 397
习题 400
参考文献 400
第10章 数据流实时处理系统Storm 401
10.1 Storm简介 402
10.1.1 与Hadoop的关系 402
10.1.2 基础概念 404
10.1.3 体系架构 410
10.1.4 集群部署 414
10.1.5 计算模型 423
10.2 Storm接口 451
10.3 实战Storm Shell 454
10.4 实战Storm API之RollingTop Words 457
习题 459
参考文献 460
第11章 数据仓库工具Hive 461
11.1 Hive简介 462
11.1.1 工作原理 462
11.1.2 体系架构 463
11.1.3 计算模型 464
11.1.4 集群部署 465
11.2 Hive接口 469
11.2.1 接口汇总 469
11.2.2 实战Hive Web 469
11.3 实战Hive Shell 470
11.3.1 DDL Operations 470
11.3.2 DML Operations 471
11.3.3 SQL Operations 472
11.4 实战Hive之复杂语句 473
11.5 实战Hive之综合示例 475
11.6 实战Hive API接口 476
11.6.1 UDF编程示例 476
11.6.2 UDAF编程示例 477
习题 479
参考文献 479
第12章 其他常见大数据组件 481
12.1 Pig 482
12.1.1 Pig简介 482
12.1.2实战Pig 485
12.2 Oozie 485
12.2.1 Oozie简介 485
12.2.2 实战Oozie 487
12.3 Flume 489
12.3.1 Flume简介 489
12.3.2 实战Flume 491
12.4 Mahout 494
12.4.1 Mahout简介 494
12.4.2 实战Mahout 494
习题 496
参考文献 496
附录A 手工部署Hadoop2.0 497
一、部署综述 498
二、部署步骤 502