本书将知识学习和技能训练有机结合,融“教、学、训”三者于一体,适合“项目化、理论实践一体化”的教学模式,教材讲解详实,文字通俗易懂,图文并茂。
大数据技术的发展日新月异,Hadoop 作为这一领域的核心技术,以其独特的分布式架构和强大的数据处理能力,引领着数据处理技术的潮流。然而 Hadoop 技术的学习和应用并不简单,它需要系统的理论指导和实践操作。为了满足高校学生及广大技术爱好者的学习需求,我们精心编写了这本《Hadoop大数据开发技术》教材。
本教材从实际出发,以“项目引导、任务驱动”的形式,全面系统地介绍了 Hadoop 技术的各个方面。全书共分为六个项目,内容涵盖了大数据基础知识、Hadoop 技术入门、HDFS 文件系统入门、YARN 资源管理、MapReduce 编程技术及 Hadoop 综合应用实践。
项目一 大数据基础知识 1
1.1 项目背景 2
1.2 项目知识准备 2
1.2.1 什么是大数据? 2
1.2.2 大数据应用场景 2
1.2.3 大数据关键技术 3
1.2.4 什么是 Hadoop ? 3
1.2.5 为什么要用 Hadoop ? 4
1.2.6 Hadoop 的起源与发展 4
1.2.7 Hadoop 的优点和劣势 5
1.3 项目设计与准备 5
1.4 项目实施 8
任务 1-1 认识 Hadoop 组成部分 8
任务 1-2 认识 Hadoop 生态系统 9
任务 1-3 认识大数据开发相关技能 14
任务 1-4 认识大数据从业人员职业发展规划 19
任务 1-5 Hadoop 虚拟机系统搭建 21
1.5 项目实训一 大数据基础知识书面考试 32
1.6 项目实训二 搭建 Hadoop 虚拟机系统 33
1.7 练习题 35
项目二 Hadoop 技术入门 36
2.1 项目背景 36
2.2 项目知识准备 36
2.2.1 Hadoop 发行版介绍 36
2.2.2 Hadoop 集群概念 37
2.2.3 Hadoop 运行模式 38
2.3 项目设计与准备 39
2.4 项目实施 39
任务 2-1 搭建 Hadoop 依赖环境 40
任务 2-2 搭建 Hadoop 集群 56
任务 2-3 学习 Hadoop 基本操作 66
任务 2-4 搭建 Hadoop HA 集群 71
2.5 项目实训一 搭建 Hadoop 依赖环境 84
2.6 项目实训二 搭建 Hadoop 集群 85
2.7 练习题 87
项目三 HDFS 文件系统入门 89
3.1 项目背景 89
3.2 项目知识准备 89
3.2.1 HDFS 概述 89
3.2.2 HDFS 数据模型概念 90
3.2.3 HDFS 设计特点 90
3.2.4 HDFS 优缺点 91
3.3 项目设计与准备 91
3.4 项目实施 93
任务 3-1 HDFS 系统架构学习 93
任务 3-2 HDFS 常用命令操作 100
任务 3-3 HDFS 文件系统的 Java API 操作 110
3.5 项目实训一 HDFS 常用命令操作实践 129
3.6 项目实训二 实现基于 HDFS 的 Java API 操作 130
3.7 练习题 132
项目四 YARN 资源管理 134
4.1 项目背景 134
4.2 项目知识准备 134
4.2.1 YARN 概述 134
4.2.2 Hadoop 为什么会有 YARN ? 135
4.2.3 YARN 的优点 135
4.3 项目设计与准备 136
4.4 项目实施 137
任务 4-1 学习 YARN 的架构设计 137
任务 4-2 YARN 常用命令操作 143
任务 4-3 YARN 任务调度与管理 158
4.5 项目实训 YARN 常用命令操作实践 167
4.6 练习题 169
项目五 MapReduce 编程技术 171
5.1 项目背景 171
5.2 项目知识准备 172
5.2.1 MapReduce 概述 172
5.2.2 MapReduce 的优缺点 173
5.2.3 MapReduce 的应用场景 174
5.3 项目设计与准备 175
5.4 项目实施 176
任务 5-1 MapReduce 的编程模型学习 176
任务 5-2 MapReduce 编程入门 185
任务 5-3 MapReduce 实例开发演练 200
任务 5-4 MapReduce 性能优化 210
5.5 项目实训一 基于 MapReduce 实现词频统计 214
5.6 项目实训二 MapReduce 编程实践 215
5.7 练习题 216
项目六 Hadoop 综合应用实践 218
6.1 项目背景 218
6.2 项目知识准备 218
6.2.1 大数据项目开发软件 218
6.2.2 Flume 文件采集工具 219
6.2.3 Hive 数据仓库工具 220
6.2.4 Sqoop 数据传递和转换工具 221
6.3 项目设计与准备 221
6.4 项目实施 226
任务 6-1 网站流量日志数据分析系统设计 226
任务 6-2 使用 Flume 实现数据采集 231
任务 6-3 使用 MapReduce 实现数据清洗 241
任务 6-4 使用 Hive 实现数据仓库 255
任务 6-5 使用 Sqoop 实现异构数据源同步 272
6.5 项目实训 网站流量日志数据分析系统开发实践 277
6.6 练习题 279