第1章Hadoop初体验 1
任务1初识大数据 2
1.1.1大数据基本概念 2
1.1.2大数据带来的挑战 3
任务2初识Hadoop 3
1.2.1 Hadoop概述 4
1.2.2 Hadoop生态圈 6
1.2.3 Hadoop应用案例 8
任务3安装Hadoop平台 9
1.3.1安装虚拟机 10
1.3.2安装Linux系统 13
1.3.3安装Hadoop伪分布式环境 30
本章总结 34
本章练习 34
第2章Hadoop分布式文件系统 35
任务1 HDFS入门 36
2.1.1认识HDFS 36
2.1.2 HDFS基础 38
2.1.3 HDFS架构 40
任务2 HDFS基本操作 41
2.2.1使用HDFS shell访问 41
2.2.2使用Java API访问 45
任务3 HDFS运行原理 48
2.3.1 HDFS读写流程 49
2.3.2 HDFS副本机制 50
2.3.3 HDFS负载均衡 51
2.3.4 HDFS机架感知 52
任务4 HDFS高级知识 53
2.4.1 Hadoop序列化机制 53
2.4.2 SequenceFile 58
2.4.3 MapFile 63
本章总结 65
本章练习 66
第3章Hadoop分布式计算框架 67
任务1认识MapReduce编程模型 68
3.1.1 MapReduce基础 68
3.1.2 MapReduce编程模型 69
3.1.3 MapReduce词频统计编程实例 70
任务2 MapReduce应用开发 75
3.2.1 MapReduce输入/输出类型 75
3.2.2 MapReduce输入格式 76
3.2.3 MapReduce输出格式 78
3.2.4 Combiner操作 79
3.2.5 Partitioner操作 82
3.2.6自定义RecordReader 86
任务3 MapReduce高级应用 92
3.3.1使用MapReduce实现join操作 93
3.3.2使用MapReduce实现排序 100
3.3.3使用MapReduce实现二次排序 103
3.3.4使用MapReduce合并小文件 108
本章总结 113
本章练习 113
第4章Hadoop新特性 115
任务1初识YARN 116
4.1.1 YARN产生背景 116
4.1.2 YARN简介 117
4.1.3 YARN架构设计 119
任务2了解HDFS新特性 121
4.2.1 HDFS NameNode高可用机制 121
4.2.2 HDFS NameNode Federation 129
4.2.3 HDFS Snapshots 130
4.2.4 HDFS REST API 134
4.2.5 DistCp工具 134
任务3了解YARN新特性 135
4.3.1 ResourceManager自动重启 135
4.3.2 ResourceManager高可用机制 136
本章总结 139
本章练习 139
第5章Hadoop分布式数据库 141
任务1认识HBase 142
5.1.1 HBase简介 142
5.1.2 HBase体系结构 143
5.1.3 HBase数据模型 145
5.1.4 HBase的安装 148
任务2 HBase Shell操作 155
5.2.1 HBase Shell简介 155
5.2.2 HBase Shell的使用 156
任务3 HBase编程 162
5.3.1开发HBase应用程序 162
5.3.2 HBase数据存储管理API 163
本章总结 175
本章练习 175
第6章Hadoop综合实战——音乐排行榜 177
任务1 MapReduce与HBase的集成 178
6.1.1 MapReduce与HBase的集成环境 178
6.1.2批量数据导入(Bulk Loading) 181
任务2 HBase MapReduce API 182
6.2.1 HBase MapReduce API简介 182
6.2.2 TableMapper的使用 183
6.2.3 TableReducer的使用 195
任务3实现音乐排行榜 197
6.3.1程序的结构与实现 198
6.3.2 HBase数据库设计优化 205
6.3.3 MapReduce全局共享数据 205
本章总结 207
本章练习 207
第7章 数据仓库Hive 209
任务1 Hive基础 210
7.1.1认识Hive 210
7.1.2 Hive架构设计 211
7.1.3 Hive与Hadoop 212
7.1.4 Hive与传统关系型数据库 212
7.1.5 Hive数据存储模型 213
7.1.6 Hive部署 213
任务2掌握Hive操作 214
7.2.1 Hive DDL 214
7.2.2 Hive DML 217
7.2.3 Hive shell 222
任务3 Hive高级应用 223
7.3.1 Hive函数 224
7.3.2 Hive调优策略 227
本章总结 232
本章练习 232
第8章 大数据离线处理辅助系统 233
任务1认识并使用数据迁移框架Sqoop 234
8.1.1 Sqoop简介 234
8.1.2使用Sqoop导入MySQL数据到HDFS 239
8.1.3使用Sqoop导出HDFS数据到MySQL 246
8.1.4使用Sqoop导入MySQL数据到Hive 248
8.1.5 Sqoop Job 250
任务2使用Azkaban实现工作流调度 250
8.2.1 Azkaban概述 250
8.2.2 Azkaban环境部署 252
8.2.3 Azkaban应用实例 256
本章总结 259
本章练习 259
第9章Spark基础 261
任务1 Spark入门 262
9.1.1 Spark简介 262
9.1.2 Spark优势 262
9.1.3 Spark生态圈 264
任务2 Scala基础 267
9.2.1 Scala简介 268
9.2.2 Scala函数定义 271
9.2.3 Scala面向对象操作 272
9.2.4 Scala集合的使用 275
9.2.5 Scala高阶函数 278
任务3编译Spark 281
9.3.1下载Spark源码 281
9.3.2编译Spark源码 282
任务4 Spark初体验 284
9.4.1 Spark环境部署 284
9.4.2 spark-shell 285
本章总结 286
本章练习 286
第10章Spark Core 287
任务1 Spark RDD 288
10.1.1 RDD介绍 288
10.1.2 RDD的创建 289
10.1.3 RDD的转换算子 291
10.1.4 RDD的动作算子 293
10.1.5 RDD的依赖关系 295
任务2 RDD高级应用 297
10.2.1 RDD缓存机制 297
10.2.2共享变量 300
10.2.3 Spark架构设计 302
任务3基于RDD的Spark应用程序开发 303
10.3.1准备工作 303
10.3.2词频计数实例 304
10.3.3年龄统计实例 308
本章总结 309
本章练习 309
第11章Spark SQL 311
任务1认识Spark SQL 312
11.1.1 SQL 312
11.1.2 SQL on Hadoop框架 312
11.1.3 Spark SQL简介 314
任务2 Spark SQL编程基础 315
11.2.1 Spark SQL编程入口 315
11.2.2 DataFrame基础 317
11.2.3 DataFrame编程实例 318
任务3 Spark SQL编程进阶 325
11.3.1 Spark SQL操作外部数据源 325
11.3.2 Spark SQL函数 329
11.3.3 Spark SQL调优 332
本章总结 334
本章练习 335
第12章Spark Streaming 337
任务1流处理框架及Spark Streaming 338
12.1.1流处理框架简介 338
12.1.2 Spark Streaming简介 340
任务2使用Spark Streaming编程 343
12.2.1 Spark Streaming核心 343
12.2.2 Spark Streaming编程实例 348
任务3 Spark Streaming高级应用 352
12.3.1使用Spark Streaming整合Flume 353
12.3.2使用Spark Streaming整合Kafka 356
12.3.3 Spark Streaming优化策略 361
本章总结 363
本章练习 363
附录 365