本书是"大数据应用开发(Java)”1+X职业技能等级证书配套教材,同时也是蓝桥学院"Java全栈工程师”培养项目配套教材。全书共16章,包括大数据概述、Hadoop、HDFS、MapReduce、YARN、ZooKeeper、Hive、Flume、Azkaban、Sqoop、HBase、Kafka、Spark、大数据平台的管理与监控、大数据离线计算项目和大数据实时计算项目。本书从零基础开始逐一讲解大数据体系中的各种技术,通过丰富的实战案例阐述重点、难点知识,为初学者进入大数据领域打好基础。各章节设计合理,在每章开头设置本章简介,在知识点介绍后紧跟实践操作,在每章的末尾对重要内容进行了概括性回顾并通过练习帮助读者巩固相关知识。本书配套资源丰富,在蓝桥在线学习平台(www.lanqiao.cn/oneplusx/)上汇集了微课、实验等多种学习资源。 本书直接服务于"大数据应用开发(Java)”1+X职业技能等级证书工作,可作为职业院校、应用型本科院校的计算机应用技术、软件技术、软件工程、网络工程和大数据应用技术等计算机类专业的教材,也可供从事计算机相关工作的技术人员参考。
国信蓝桥教育科技(北京)股份有限公司成立于2005年,是一家以大学生就业为切入点,以职业服务为主线,基于大学生职业生涯各个阶段的需求提供精准服务的人才大数据科技服务平台;通过提供教育、就业、职业服务,连接高校和企业,伴随大学生成长;获得的资质包括国家高新技术企业、中关村高新技术企业、人力资源服务许可证、出版物经营许可证、教育部产学合作协同育人单位、教育部1+X职业技能等级证书培训评价组织。
第1章 大数据概述 1
1.1 大数据的历史、现状与未来 1
1.1.1 大数据的历史 1
1.1.2 大数据的现状 3
1.1.3 大数据的未来 5
1.2 大数据的概念、特征与价值 5
1.2.1 大数据的概念 5
1.2.2 大数据的特征 6
1.2.3 大数据的价值 7
1.3 大数据的技术架构 8
1.4 大数据离线计算与实时计算 11
1.4.1 大数据离线计算 11
1.4.2 大数据实时计算 12
1.5 大数据下的数据驱动 13
1.6 本章小结 15
1.7 本章练习 15
第2章 初识Hadoop 17
2.1 Hadoop概述 17
2.2 Hadoop生态圈 18
2.3 Hadoop集群安装部署 21
2.3.1 集群环境准备 21
2.3.2 Hadoop集群的重要概念 27
2.3.3 伪分布模式安装 28
2.3.4 全分布模式安装 34
2.4 本章小结 36
2.5 本章练习 36
第3章 分布式文件系统—初识HDFS 38
3.1 HDFS概述 38
3.2 HDFS工作机制 39
3.2.1 HDFS通信机制 40
3.2.2 HDFS数据冗余机制 41
3.2.3 HDFS元数据管理机制 41
3.2.4 HDFS数据读写机制 49
3.2.5 HDFS异常恢复机制 51
3.2.6 HDFS安全模式机制 51
3.3 HDFS操作与编程接口 52
3.3.1 HDFS Web UI 52
3.3.2 HDFS Shell 54
3.3.3 HDFS Java API编程 61
3.4 本章小结 64
3.5 本章练习 64
第4章 分布式计算框架MapReduce 66
4.1 MapReduce概述 66
4.2 MapReduce运行机制 67
4.3 编程实现WordCount 73
4.4 MapReduce数据类型与输入/输出格式 76
4.5 文件切片 78
4.6 Shuffle机制详解 79
4.7 数据清洗案例 90
4.8 本章小结 94
4.9 本章练习 95
第5章 统一资源管理和调度框架YARN 97
5.1 YARN概述 97
5.2 YARN体系架构 98
5.3 YARN工作流程 99
5.4 YARN调度器与调度策略 100
5.5 本章小结 101
5.6 本章练习 102
第6章 分布式协调框架ZooKeeper 103
6.1 ZooKeeper概述 103
6.2 ZooKeeper系统模型 104
6.2.1 数据模型 104
6.2.2 集群模型 107
6.3 ZooKeeper核心机制 107
6.4 ZooKeeper典型应用 111
6.5 ZooKeeper安装部署 114
6.6 ZooKeeper Shell 116
6.7 本章小结 118
6.8 本章练习 119
第7章 数据仓库Hive 121
7.1 Hive概述 121
7.2 Hive体系架构 123
7.3 Hive安装部署 124
7.4 Hive数据类型 129
7.5 Hive文件格式 130
7.6 Hive数据模型 131
7.7 Hive函数 132
7.8 Hive实战 133
7.8.1 DDL操作 133
7.8.2 DML操作 139
7.8.3 WordCount详解 153
7.8.4 高级操作 154
7.9 本章小结 163
7.10 本章练习 164
第8章 日志采集工具Flume 166
8.1 Flume概述 166
8.2 Flume体系架构 166
8.3 Flume安装部署 170
8.4 Flume实战 171
8.5 本章小结 174
8.6 本章练习 174
第9章 工作流调度器Azkaban 175
9.1 Azkaban概述 175
9.2 Azkaban的安装部署 177
9.3 Azkaban实战 183
9.4 本章小结 187
9.5 本章练习 187
第10章 数据迁移工具Sqoop 189
10.1 Sqoop概述 189
10.2 Sqoop的安装部署 190
10.3 Sqoop实战 191
10.4 本章小结 200
10.5 本章练习 201
第11章 分布式列存储数据库HBase 202
11.1 HBase概述 202
11.2 HBase数据模型 203
11.3 HBase体系架构 206
11.4 HBase运行机制 208
11.5 HBase安装部署 210
11.6 HBase实战 214
11.6.1 HBase Shell 214
11.6.2 HBase Java API编程 220
11.6.3 HBase中使用过滤器Filter 228
11.6.4 HBase中使用MapReduce 236
11.7 HBase性能优化 242
11.7.1 数据库表设计优化 242
11.7.2 数据库读写优化 243
11.7.3 HBase参数设置优化 243
11.8 本章小结 244
11.9 本章练习 246
第12章 分布式消息队列Kafka 248
12.1 两种消息模型 248
12.2 Kafka架构与机制 249
12.3 Kafka的安装部署 253
12.4 Kafka实战 256
12.4.1 Kafka Shell 256
12.4.2 Kafka Java API 258
12.5 本章小结 261
12.6 本章练习 262
第13章 内存计算框架Spark 264
13.1 Spark概述 264
13.2 Spark体系架构 266
13.3 Spark安装部署 268
13.4 Spark客户端操作 272
13.5 Spark RDD 276
13.5.1 Spark RDD概述 276
13.5.2 Spark RDD算子 276
13.5.3 Spark RDD依赖关系 284
13.5.4 Spark RDD缓存 285
13.6 Spark SQL 286
13.6.1 Spark SQL概述 286
13.6.2 Spark SQL DataFrame/DataSet 287
13.6.3 Spark SQL编程 288
13.6.4 Spark操作JDBC 291
13.6.5 Spark操作Hive 293
13.7 Spark Streaming 294
13.7.1 Spark Streaming概述 294
13.7.2 Spark Streaming实现实时WordCount 295
13.7.3 Spark Streaming整合Flume 300
13.7.4 Spark Streaming整合Kafka 303
13.8 本章小结 305
13.9 本章练习 306
第14章 大数据平台的管理与监控 308
14.1 平台管理与监控概述 308
14.2 Nagios介绍 309
14.3 Ganglia介绍 310
14.4 Cacti介绍 311
14.5 JMX介绍 312
14.6 本章小结 321
14.7 本章练习 321
第15章 大数据离线计算项目 323
15.1 项目概述 323
15.2 需求分析与项目设计 323
15.3 数据预处理 325
15.4 数据分析并导出结果到MySQL 327
15.5 数据可视化 330
15.6 本章小结 353
15.7 本章练习 354
第16章 大数据实时计算项目 355
16.1 项目概述 355
16.2 需求分析与项目设计 355
16.3 数据采集到消息中间件 356
16.4 数据实时计算并保存到Redis 357
16.5 数据可视化 359
16.6 本章小结 363
16.7 本章练习 363
附录A 部分练习参考答案及解析 364
参考文献 377