内容介绍
本书围绕Hadoop大数据处理框架展开,旨在深入介绍Hadoop生态系统的开发技术及应用.本书内容涵盖Hadoop基础知识,MapReduce编程模型、HDFS文件系统、YARN资源管理器等关键技术,以及Hadoop集群的搭建、优化和调试方法.此外,本书还重点讲解了Hadoop生态中常用采集组件(如Sqoop、Flume等)的开发与整合技术,帮助读者全面掌握大数据处理的流程和方法.本书将理论与实践相结合,通过丰富的案例和实例帮助读者更好地理解和运用Hadoop技术.
![]() |
HADOOP大数据开发技术
1)围绕Hadoop大数据处理框架展开,旨在深入介绍Hadoop生态系统的开发技术及应用。 2)结合理论与实践,通过丰富的案例和实例帮助读者更好地理解与运用Hadoop技术。 3)以简明易懂的语言解释复杂的技术概念,使得初学者也能够轻松入门。 4)着重介绍实践和实用技巧,帮助读者在实际项目中更高效地应用Hadoop技术。 5)配套提供电子课件、习题答案、教学大纲、源代码、试卷。
目录
●前言
第1章 初识Hadoop1
1.1 大数据概述1
1.1.1 大数据的起源1
1.1.2 大数据的概念2
1.1.3 大数据的基本处理流程4
1.1.4 大数据技术体系结构5
1.1.5 大数据行业应用6
1.1.6 大数据与云计算、物联网的关系6
1.2 Hadoop起源及发展历史8
1.2.1 Hadoop的概念8
1.2.2 Hadoop的起源8
1.2.3 Hadoop发展简史9
1.3 Hadoop的设计思想和特性9
1.3.1 Hadoop的设计思想9
1.3.2 Hadoop的特性9
1.4 Hadoop的体系结构10
1.4.1 Hadoop 1.x10
1.4.2 Hadoop 2.x10
1.4.3 Hadoop 3.x10
1.5 Hadoop的生态系统11
1.6 Hadoop的发行版与下载12
1.6.1 Apache Hadoop发行版12
1.6.2 Cloudera13
1.6.3 Hortonworks13
1.6.4 FusionInsight14
1.6.5 Hadoop版本选择依据15
1.7 习题15
第2章 Hadoop分布式文件系统16
2.1 Hadoop伪分布式安装和配置16
2.1.1 安装前准备16
2.1.2 Hadoop安装18
2.1.3 环境测试21
2.2 HDFS设计思想22
2.2.1 大数据分布式文件系统22
2.2.2 HDFS角色25
2.2.3 HDFS架构思想26
2.3 Hadoop常用操作命令27
2.3.1 目录与文件操作27
2.3.2 本地与集群操作、集群内操作28
2.3.3 hdfs dfsadmin命令29
2.4 Java实现HDFS操作30
2.4.1 HDFS连接操作30
2.4.2 实现目录创建31
2.4.3 实现上传文件31
2.4.4 实现文件列表查看功能32
2.4.5 实现目录删除33
2.4.6 实现资源回收34
2.5 习题35
第3章 YARN原理与架构36
3.1 YARN原理与组件构成36
3.1.1 YARN概述36
3.1.2 YARN整体架构38
3.1.3 YARN与HDFS的关系41
3.1.4 YARN组件工作流程42
3.2 YARN与MapReduce V144
3.2.1 MapReduce V1简介44
3.2.2 YARN对比MapReduce V145
3.3 YARN任务调度机制46
3.3.1 YARN任务调度概述46
3.3.2 YARN先进先出调度器47
3.3.3 YARN容量调度器47
3.3.4 YARN公平调度器51
3.3.5 容量调度器和公平调度器的异同53
3.4 习题54
第4章 MapReduce初体验55
4.1 MapReduce概述55
4.1.1 MapReduce简介55
4.1.2 MapReduce编程模型60
4.1.3 MapReduce与HDFS的关系63
4.2 Hadoop官方案例体验65
4.2.1 Hadoop案例介绍65
4.2.2 WordCount案例体验66
4.2.3 WordCount案例执行流程说明72
4.3 案例:编程实现WordCount73
4.3.1 MapReduce编程规范73
4.3.2 MapReduce编程实现73
4.3.3 MapReduce程序执行76
4.3.4 Hadoop序列化概述77
4.4 习题79
第5章 MapReduce应用开发80
5.1 MapReduce编程80
5.1.1 MapReduce应用开发概述80
5.1.2 MapReduce应用本地测试95
5.1.3 MapReduce应用自定义日志100
5.1.4 MapReduce编程指南101
5.2 MapReduce运行模式103
5.2.1 MapReduce运行模式介绍103
5.2.2 案例:文本词频统计应用的运行模式测试104
5.3 MRUnit单元测试107
5.3.1 MRUnit介绍107
5.3.2 案例:文本词频统计应用的MRUnit单元测试107
5.4 习题115
第6章 MapReduce工作机制116
6.1 MapReduce程序运行机制116
6.1.1 作业提交117
6.1.2 作业初始化118
6.1.3 任务分配118
6.1.4 任务执行119
6.1.5 进度和状态更新119
6.1.6 作业完成120
6.2 MapReduce编程组件120
6.2.1 MapReduce编程流程120
6.2.2 InputFormat组件122
6.2.3 Mapper组件125
6.2.4 Shuffle组件126
6.2.5 Reducer组件131
6.2.6 OutputFormat组件131
6.3 案例:MapReduce开发经典案例132
6.3.1 案例:数据去重MapReduce程序开发132
6.3.2 案例:计算平均值MapReduce程序开发135
6.3.3 案例:数据排序MapReduce程序开发140
6.4 习题140
第7章 Hadoop的I/O操作141
7.1 Hadoop I/O概述141
7.1.1 Hadoop I/O操作的基本概念141
7.1.2 Hadoop I/O操作流程141
7.1.3 常用的InputFormat和OutputFormat142
7.1.4 示例代码142
7.2 数据完整性142
7.2.1 数据完整性概述142
7.2.2 HDFS数据完整性校验145
7.3 MapReduce数据压缩146
7.3.1 MapReduce数据压缩概述146
7.3.2 编程实现数据压缩148
7.4 序列化机制150
7.4.1 序列化概述150
7.4.2 常用的Hadoop序列化框架151
7.4.3 Hadoop序列化格式Writable152
7.5 案例:序列化编程实战158
7.6 案例:数据完整性实战162
7.7 案例:编程实现数据压缩164
7.8 习题165
第8章 MapReduce类型与格式166
8.1 MapReduce类型166
8.1.1 默认的MapReduce作业166
8.1.2 验证MapReduce作业默认数据类型168
8.1.3 显式地把作业环境参数设置为默认值169
8.2 MapReduce输入格式171
8.2.1 输入分片与记录171
8.2.2 文本输入格式173
8.2.3 二进制输入格式177
8.2.4 多文件输入178
8.2.5 数据库输入179
8.3 MapReduce输出格式181
8.3.1 输出格式分类181
8.3.2 文本输出182
8.3.3 二进制输出183
8.3.4 多文件输出185
8.3.5 延迟输出187
8.4 案例:SequenceFileInputFormat格式文件读取188
8.5 案例:统计结果的多文件输出190
8.6 习题192
第9章 MapReduce高级操作193
9.1 计数器193
9.1.1 计数器概述193
9.1.2 内置计数器194
9.1.3 自定义计数器197
9.2 排序199
9.2.1 排序概述199
9.2.2 部分排序200
9.2.3 完全排序203
9.2.4 辅助排序204
9.2.5 倒排索引207
9.3 数据倾斜解决209
9.4 连接209
9.4.1 连接概述209
9.4.2 Map端连接210
9.4.3 Reduce端连接212
9.5 边数据分布214
9.5.1 边数据分布概述214
9.5.2 分布式缓存215
9.6 案例:统计缺失记录和单词质量异常217
9.7 案例:统计分析商品和订单综合信息220
9.8 习题223
第10章 构建Hadoop集群224
10.1 集群规划与设计224
10.1.1 部署方式和配置224
10.1.2 硬件准备225
10.2 操作系统安装与配置225
10.3 集群的构建和部署227
10.3.1 集群主节点配置227
10.3.2 集群子节点配置237
10.3.3 启动Hadoop集群240
10.4 集群运行和测试241
10.4.1 测试WordCount词频统计241
10.4.2 使用TestDFSIO来评测HDFS242
10.5 习题244
第11章 Hadoop集群管理245
11.1 HDFS文件管理245
11.1.1 较为性数据结构245
11.1.2 安全模式248
11.1.3 日志审计249
11.2 集群监控251
11.2.1 通过Web监控HDFS集群251
11.2.2 验证文件和文件系统状态的命令256
11.3 集群维护258
11.3.1 规划和准备258
11.3.2 添加集群节点258
11.3.3 删除集群节点259
11.3.4 常见问题处理260
11.4 习题262
第12章 Avro数据类型和模型263
12.1 Avro数据类型263
12.1.1 Avro概述263
12.1.2 Avro复杂数据类型264
12.2 Avro数据文件264
12.2.1 Avro数据文件概述264
12.2.2 Avro数据文件在大数据处理中的应用266
12.2.3 Avro序列化和反序列化267
12.3 Avro MapReduce编程269
12.3.1 Avro格式转换案例269
12.3.2 Avro MapReduce Max案例270
12.3.3 Avro MapReduce排序案例272
12.4 案例:实现Avro文件的序列化和反序列化275
12.4.1 定义数据类275
12.4.2 序列化和反序列化276
12.4.3 运行程序277
12.5 案例:统计分析Avro格式文件中的信息277
12.5.1 准备数据277
12.5.2 创建Spark应用程序278
12.5.3 运行Spark应用程序278
12.6 Avro的新功能和改进279
12.7 习题279
第13章 Parquet数据格式280
13.1 Parquet数据类型及文件模型280
13.1.1 Parquet文件格式280
13.1.2 Parquet文件在磁盘上的分布282
13.1.3 Parquet数据类型283
13.1.4 深入解析Parquet文件Schema语法结构284
13.1.5 Parquet的数据编码和压缩286
13.2 Parquet文件的读写操作286
13.2.1 Parquet文件写操作286
13.2.2 Parquet文件读操作288
13.3 Parquet与大数据处理框架的集成289
13.3.1 Parquet在Apache Hadoop生态系统中的应用289
13.3.2 Parquet与Apache Spark、Apache Hive等工具的集成290
13.3.3 Parquet数据格式在数据湖架构中的角色290
13.4 案例:员工平均薪水统计分析291
13.5 案例:实现Spark对Parquet文件的分析操作292
13.6 案例:使用Hive对Parquet文件进行统计294
13.7 习题295
第14章 Flume日志收集296
14.1 Flume安装与配置296
14.2 Flume各组件使用示例303
14.2.1 Flume的Source组件303
14.2.2 Flume的Channel组件305
14.2.3 Flume的Sink组件306
14.3 Flume采集日志示例309
14.4 Flume和Sqoop对比312
14.5 Flume事务与可靠性313
14.5.1 Flume事务机制313
14.5.2 Flume的At-least-once提交方式314
14.5.3 Flume的批处理机制315
14.6 Flume与应用程序集成315
14.6.1 Flume概述315
14.6.2 Flume分类315
14.6.3 使用静态实现多个节点日志数据收集316
14.6.4 自定义Flume319
14.7 习题321
第15章 Sqoop数据迁移322
15.1 Sqoop概述322
15.1.1 理解Sqoop322
15.1.2 Sqoop架构322
15.2 Sqoop安装与配置323
15.2.1 安装依赖环境323
15.2.2 Sqoop安装324
15.2.3 Sqoop首次启用324
15.3 Sqoop的数据迁移325
15.3.1 导入数据到Hadoop325
15.3.2 导出数据到关系数据库326
15.3.3 Sqoop命令行工具详解327
15.4 高级功能328
15.4.1 增量导入与导出328
15.4.2 并行导入与导出330
15.4.3 自定义连接器331
15.5 Sqoop性能优化332
15.5.1 Sqoop性能调优策略332
15.5.2 数据传输很好实践333
15.6 Sqoop故障排除334
15.6.1 常见问题与解决方案334
15.6.2 日志分析与调试技巧335
15.7 Sqoop未来展望336
15.7.1 Sqoop的发展趋势336
15.7.2 Sqoop在大数据生态系统中的地位336
15.8 习题337
参考文献338
内容介绍
本书围绕Hadoop大数据处理框架展开,旨在深入介绍Hadoop生态系统的开发技术及应用.本书内容涵盖Hadoop基础知识,MapReduce编程模型、HDFS文件系统、YARN资源管理器等关键技术,以及Hadoop集群的搭建、优化和调试方法.此外,本书还重点讲解了Hadoop生态中常用采集组件(如Sqoop、Flume等)的开发与整合技术,帮助读者全面掌握大数据处理的流程和方法.本书将理论与实践相结合,通过丰富的案例和实例帮助读者更好地理解和运用Hadoop技术.
微信支付
支付宝
扫一扫购买