第1章 VMware中安装CentOS 7 1
1.1 下载CentOS 7镜像文件 1
1.2 新建虚拟机 5
1.3 安装操作系统 9
第2章 CentOS 7集群环境配置 16
2.1 系统环境配置 16
2.1.1 新建用户 17
2.1.2 修改用户权限 17
2.1.3 关闭防火墙 17
2.1.4 设置固定IP 18
2.1.5 修改主机名 22
2.1.6 新建资源目录 23
2.2 安装JDK 23
2.3 克隆虚拟机 25
2.4 配置主机IP映射 29
第3章 Hadoop 31
3.1 Hadoop简介 31
3.1.1 Hadoop生态系统架构 32
3.1.2 Hadoop 1.x与2.x的架构对比 33
3.2 YARN基本架构及组件 34
3.3 YARN工作流程 37
3.4 配置集群各节点SSH无密钥登录 38
3.4.1 无密钥登录原理 38
3.4.2 无密钥登录操作步骤 39
3.5 搭建Hadoop 2.x分布式集群 41
第4章 HDFS 48
4.1 HDFS简介 48
4.1.1 设计目标 49
4.1.2 总体架构 49
4.1.3 主要组件 50
4.1.4 文件读写 53
4.2 HDFS命令行操作 54
4.3 HDFS Web界面操作 57
4.4 HDFS Java API操作 59
4.4.1 读取数据 59
4.4.2 创建目录 61
4.4.3 创建文件 62
4.4.4 删除文件 63
4.4.5 遍历文件和目录 64
4.4.6 获取文件或目录的元数据 65
4.4.7 上传本地文件 66
4.4.8 下载文件到本地 66
第5章 MapReduce 68
5.1 MapReduce简介 68
5.1.1 设计思想 69
5.1.2 任务流程 70
5.1.3 工作原理 71
5.2 MapReduce程序编写步骤 74
5.3 案例分析:单词计数 76
5.4 案例分析:数据去重 82
5.5 案例分析:求平均分 86
5.6 案例分析:二次排序 89
5.7 使用MRUnit测试MapReduce程序 97
第6章 ZooKeeper 100
6.1 ZooKeeper简介 100
6.1.1 应用场景 101
6.1.2 架构原理 101
6.1.3 数据模型 102
6.1.4 节点类型 103
6.1.5 Watcher机制 103
6.1.6 分布式锁 105
6.2 ZooKeeper安装配置 106
6.2.1 单机模式 106
6.2.2 伪分布模式 108
6.2.3 集群模式 109
6.3 ZooKeeper命令行操作 112
6.4 ZooKeeper Java API操作 114
6.4.1 创建Java工程 114
6.4.2 创建节点 115
6.4.3 修改数据 118
6.4.4 获取数据 118
6.4.5 删除节点 123
6.5 案例分析:监听服务器动态上下线 124
第7章 HDFS与YARN HA 129
7.1 HDFS HA搭建 129
7.1.1 架构原理 130
7.1.2 搭建步骤 131
7.1.3 结合ZooKeeper进行HDFS自动故障转移 137
7.2 YARN HA搭建 142
7.2.1 架构原理 142
7.2.2 搭建步骤 142
第8章 HBase 147
8.1 什么是HBase 147
8.2 HBase基本结构 148
8.3 HBase数据模型 149
8.4 HBase集群架构 151
8.5 HBase安装配置 153
8.5.1 单机模式 153
8.5.2 伪分布模式 155
8.5.3 集群模式 156
8.6 HBase Shell命令操作 160
8.7 HBase Java API操作 164
8.7.1 创建Java工程 164
8.7.2 创建表 164
8.7.3 添加数据 166
8.7.4 查询数据 168
8.7.5 删除数据 169
8.8 HBase过滤器 170
8.9 案例分析:HBase MapReduce数据转移 174
8.9.1 HBase不同表间数据转移 174
8.9.2 HDFS数据转移至HBase 180
8.10 案例分析:HBase数据备份与恢复 183
第9章 Hive 185
9.1 什么是Hive 185
9.1.1 数据单元 186
9.1.2 数据类型 187
9.2 Hive架构体系 189
9.3 Hive三种运行模式 190
9.4 Hive安装配置 191
9.4.1 内嵌模式 192
9.4.2 本地模式 195
9.4.3 远程模式 198
9.5 Hive常见属性配置 200
9.6 Beeline CLI的使用 201
9.7 Hive数据库操作 205
9.8 Hive表操作 208
9.8.1 内部表 209
9.8.2 外部表 213
9.8.3 分区表 215
9.8.4 分桶表 219
9.9 Hive查询 223
9.9.1 SELECT子句查询 224
9.9.2 JOIN连接查询 230
9.10 其他Hive命令 233
9.11 Hive元数据表结构分析 235
9.12 Hive自定义函数 237
9.13 Hive JDBC操作 239
9.14 案例分析:Hive与HBase整合 242
9.15 案例分析:Hive分析搜狗用户搜索日志 246
第10章 Sqoop 251
10.1 什么是Sqoop 251
10.1.1 Sqoop基本架构 252
10.1.2 Sqoop开发流程 252
10.2 使用Sqoop 253
10.3 数据导入工具 254
10.4 数据导出工具 259
10.5 Sqoop安装与配置 261
10.6 案例分析:将MySQL表数据导入到HDFS中 262
10.7 案例分析:将HDFS中的数据导出到MySQL中 263
10.8 案例分析:将MySQL表数据导入到HBase中 264
第11章 Kafka 267
11.1 什么是Kafka 267
11.2 Kafka架构 268
11.3 主题与分区 269
11.4 分区副本 271
11.5 消费者组 273
11.6 数据存储机制 274
11.7 集群环境搭建 276
11.8 命令行操作 278
11.8.1 创建主题 278
11.8.2 查询主题 279
11.8.3 创建生产者 280
11.8.4 创建消费者 280
11.9 Java API操作 281
11.9.1 创建Java工程 281
11.9.2 创建生产者 281
11.9.3 创建消费者 283
11.9.4 运行程序 285
11.10 案例分析:Kafka生产者拦截器 287
第12章 Flume 294
12.1 什么是Flume 294
12.2 架构原理 295
12.2.1 单节点架构 295
12.2.2 组件介绍 296
12.2.3 多节点架构 297
12.3 安装与简单使用 299
12.4 案例分析:日志监控(一) 302
12.5 案例分析:日志监控(二) 304
12.6 拦截器 306
12.6.1 内置拦截器 307
12.6.2 自定义拦截器 310
12.7 选择器 313
12.8 案例分析:拦截器和选择器的应用 315
12.9 案例分析:Flume与Kafka整合 319
第13章 Storm 322
13.1 什么是Storm 322
13.2 Storm Topology 323
13.3 Storm集群架构 324
13.4 Storm流分组 326
13.5 Storm集群环境搭建 329
13.6 案例分析:单词计数 332
13.6.1 设计思路 332
13.6.2 代码编写 333
13.6.3 程序运行 339
13.7 案例分析:Storm与Kafka整合 341
第14章 Elasticsearch 347
14.1 什么是Elasticsearch 347
14.2 基本概念 348
14.2.1 索引、类型和文档 348
14.2.2 分片和副本 348
14.2.3 路由 349
14.3 集群架构 350
14.4 集群环境搭建 352
14.5 Kibana安装 355
14.6 REST API 357
14.6.1 集群状态API 357
14.6.2 索引API 358
14.6.3 文档API 360
14.6.4 搜索API 363
14.6.5 Query DSL 365
14.7 Head插件安装 371
14.8 Java API操作:员工信息 375
第15章 Scala 379
15.1 什么是Scala 379
15.2 安装Scala 380
15.2.1 Windows中安装Scala 380
15.2.2 CentOS 7中安装Scala 381
15.3 Scala基础 382
15.3.1 变量声明 382
15.3.2 数据类型 383
15.3.3 表达式 385
15.3.4 循环 386
15.3.5 方法与函数 388
15.4 集合 391
15.4.1 数组 391
15.4.2 List 393
15.4.3 Map映射 394
15.4.4 元组 396
15.4.5 Set 396
15.5 类和对象 398
15.5.1 类的定义 398
15.5.2 单例对象 399
15.5.3 伴生对象 399
15.5.4 get和set方法 400
15.5.5 构造器 402
15.6 抽象类和特质 404
15.6.1 抽象类 404
15.6.2 特质 406
15.7 使用Eclipse创建Scala项目 408
15.7.1 安装Scala for Eclipse IDE 408
15.7.2 创建Scala项目 409
15.8 使用IntelliJ IDEA创建Scala项目 410
15.8.1 IDEA中安装Scala插件 410
15.8.2 创建Scala项目 414
第16章 Spark 416
16.1 Spark概述 416
16.2 Spark主要组件 417
16.3 Spark运行时架构 419
16.3.1 Spark Standalone模式 419
16.3.2 Spark On YARN模式 421
16.4 Spark集群环境搭建 423
16.4.1 Spark Standalone模式 423
16.4.2 Spark On YARN模式 425
16.5 Spark HA搭建 426
16.6 Spark应用程序的提交 430
16.7 Spark Shell的使用 433
16.8 Spark RDD 435
16.8.1 创建RDD 435
16.8.2 RDD算子 436
16.9 案例分析:使用Spark RDD实现单词计数 441
16.10 Spark SQL 448
16.10.1 DataFrame和Dataset 448
16.10.2 Spark SQL基本使用 449
16.11 案例分析:使用Spark SQL实现单词计数 452
16.12 案例分析:Spark SQL与Hive整合 454
16.13 案例分析:Spark SQL读写MySQL 457