目录
第1章初识Hadoop1
1.1大数据概述1
1.1.1什么是大数据1
1.1.2大数据的数据类型2
1.1.3大数据的特征3
1.1.4研究大数据的意义3
1.2大数据的应用场景4
1.2.1医疗行业的应用4
1.2.2金融行业的应用4
1.2.3零售行业的应用5
1.3Hadoop概述6
1.3.1Hadoop的前世今生6
1.3.2Hadoop的优点与局限7
1.3.3Hadoop的生态体系8
1.3.4Hadoop架构变迁9
1.4本章小结11
1.5课后习题12
第2章部署Hadoop集群13
2.1Hadoop集群部署模式13
2.2Hadoop核心配置14
2.3基于伪分布式模式部署Hadoop18
2.4基于完全分布式模式部署
Hadoop 27
2.5案例——词频统计32
2.6本章小结35
2.7课后习题36
第3章HDFS分布式文件系统37
3.1文件系统的分类37
3.2HDFS简介40
3.2.1HDFS架构40
3.2.2HDFS的特点42
3.3HDFS的文件读写流程43
3.4HDFS的健壮性45
3.5HDFS Shell操作46
3.5.1HDFS Shell介绍46
3.5.2案例——通过Shell脚本定时
采集数据到HDFS58
3.6HDFS Java API操作61
3.6.1HDFS Java API介绍61
3.6.2案例——使用HDFS Java
API操作HDFS64
3.7Federation73
3.7.1Federation实现原理73
3.7.2Federation优缺点75
3.7.3实现Federation76
3.8Erasure Coding79
3.9本章小结84
3.10课后习题84
第4章MapReduce分布式计算框架 …86
4.1MapReduce概述86
4.2MapReduce编程模型88
4.3MapReduce工作原理89
4.3.1MapReduce工作过程89
4.3.2MapTask工作原理91
4.3.3ReduceTask工作原理92
4.4MapReduce编程组件93
4.4.1InputFormat组件93
4.4.2Mapper组件95
4.4.3Reducer组件97
4.4.4Partitioner组件99
4.4.5OutputFormat组件100
4.5MapReduce驱动类102
4.6MapReduce性能优化策略104
4.7YARN资源管理框架106
4.7.1YARN架构107
4.7.2YARN工作流程108
4.8MapReduce经典案例——数据
去重110
4.8.1案例分析110
4.8.2案例实现111
4.9MapReduce经典案例——TopN …114
4.9.1案例分析114
4.9.2案例实现114
4.10MapReduce经典案例——倒排
索引118
4.10.1倒排索引概述118
4.10.2案例分析119
4.10.3案例实现120
4.11本章小结125
4.12课后习题125
第5章ZooKeeper分布式协调
服务 1275.1ZooKeeper简介127
5.1.1ZooKeeper特性128
5.1.2ZooKeeper架构128
5.2ZooKeeper数据模型130
5.3ZooKeeper典型应用场景131
5.4ZooKeeper的Watcher机制132
5.5ZooKeeper的选举机制134
5.6部署ZooKeeper135
5.6.1基于伪分布式模式部署
ZooKeeper136
5.6.2基于完全分布式模式部署
ZooKeeper139
5.7ZooKeeper Shell操作142
5.8ZooKeeper Java API操作149
5.8.1建立会话149
5.8.2操作ZNode151
5.9本章小结159
5.10课后习题160
第6章Hadoop高可用集群161
6.1HDFS高可用集群161
6.2YARN高可用集群164
6.3部署Hadoop高可用集群165
6.4本章小结176
6.5课后习题176
第7章Hive数据仓库178
7.1数据仓库简介178
7.1.1什么是数据仓库178
7.1.2数据仓库的意义179
7.1.3数据仓库分层181
7.1.4数据仓库模型183
7.2Hive简介186
7.2.1Hive概述186
7.2.2Hive系统架构187
7.2.3Hive数据模型188
7.2.4Hive数据类型190
7.3Beeline概述193
7.4Hive部署196
7.4.1内嵌模式部署Hive196
7.4.2本地模式部署Hive199
7.4.3远程模式部署Hive203
7.4.4安装Tez207
7.5数据库操作211
7.5.1创建数据库211
7.5.2查询数据库212
7.5.3查看数据库信息213
7.5.4切换数据库214
7.5.5修改数据库215
7.5.6删除数据库215
7.6表操作217
7.6.1CREATE TABLE语句
分析217
7.6.2创建表218
7.6.3查询表221
7.6.4查看表信息221
7.6.5修改表222
7.6.6删除表225
7.6.7修改分区226
7.7数据操作229
7.7.1加载数据229
7.7.2插入数据233
7.7.3查询数据236
7.7.4连接查询245
7.8本章小结250
7.9课后习题250
第8章Flume日志采集系统252
8.1Flume概述252
8.2Flume日志采集系统架构图253
8.3部署Flume255
8.4Flume的基本使用256
8.5Flume的采集方案260
8.5.1Flume Sources260
8.5.2Flume Channels264
8.5.3Flume Sinks266
8.6Flume拦截器270
8.7Flume的可靠性保证273
8.7.1负载均衡273
8.7.2故障恢复279
8.8案例——将日志采集到HDFS282
8.8.1案例分析282
8.8.2案例实现283
8.9本章小结288
8.10课后习题289
第9章Azkaban工作流管理器290
9.1工作流管理器概述290
9.2Azkaban概述291
9.3部署Azkaban292
9.3.1Azkaban部署模式292
9.3.2安装Azkaban293
9.3.3配置Azkaban294
9.3.4启动Azkaban297
9.4Azkaban的使用300
9.4.1Azkaban的常用概念300
9.4.2案例演示——基于依赖
关系的Job调度管理302
9.4.3案例演示——基于MapReduce
程序的Job调度管理309
9.4.4案例演示——基于Hive
脚本的任务调度管理313
9.5本章小结318
9.6课后习题318
第10章Spark分布式计算框架320
10.1Spark概述320
10.2Spark SQL简介322
10.3部署Spark323
10.3.1Spark部署模式323
10.3.2基于Spark on YARN
模式部署Spark324
10.4DataFrame的基础知识327
10.4.1DataFrame简介327
10.4.2DataFrame的创建328
10.4.3DataFrame的常用操作 …330
10.4.4DataFrame的数据写出 …332
10.5基于Spark实现数据迁移334
10.5.1案例演示——将MySQL
中的数据导入HDFS334
10.5.2案例演示——将MySQL
中的数据导入Hive339
10.5.3案例演示——将HDFS
中的数据导入MySQL …341
10.5.4案例演示——将Hive
中的数据导入MySQL …344
10.6本章小结346
10.7课后习题347
第11章综合项目——网站流量日志
数据分析系统34811.1系统概述348
11.1.1系统背景介绍348
11.1.2需求分析349
11.1.3系统架构349
11.2项目实施351
11.3本章小结351
