Hadoop大数据开发基础:第2版 微课版
作者: 张军
出版时间:2021年版
内容提要
本书以任务为导向,较为全面地介绍Hadoop大数据技术及其生态系统组件Hive、HBase的相关知识。全书共8章,具体内容包括Hadoop介绍、Hadoop集群的搭建及配置、Hadoop基础操作、MapReduce入门编程、MapReduce进阶编程、Hive数据仓库、HBase分布式数据库,以及一个项目案例(电影网站用户影评分析)。本书的第2~7章包含实训与课后习题,读者可通过练习和操作实践,巩固所学的内容。
本书可用于“1+X”证书制度试点工作中的大数据应用开发(Python)职业技能等级证书(中级)的教学和培训,也可以作为高校大数据技术相关专业的教材和大数据技术爱好者的自学用书。
目录
第 1章 Hadoop介绍 1
任务1.1 认识Hadoop框架 1
1.1.1 什么是Hadoop 1
1.1.2 了解Hadoop的发展历史 2
1.1.3 了解Hadoop的特点 4
任务1.2 了解Hadoop核心组件 4
1.2.1 了解分布式文件系统——HDFS 4
1.2.2 了解分布式计算框架——MapReduce 7
1.2.3 了解集群资源管理器——YARN 9
任务1.3 了解Hadoop生态系统 12
任务1.4 了解Hadoop应用场景 14
小结 15
课后习题 15
第 2章 Hadoop集群的搭建及配置 17
任务2.1 安装及配置虚拟机 18
2.1.1 创建Linux虚拟机 18
2.1.2 设置固定IP地址 26
2.1.3 远程连接虚拟机 29
2.1.4 配置本地YUM源及安装常用软件 31
任务2.2 搭建Hadoop 分布式集群 35
2.2.1 在Linux下安装Java 36
2.2.2 修改配置文件 37
2.2.3 克隆虚拟机 41
2.2.4 配置SSH免密码登录 44
2.2.5 配置时间同步服务 45
2.2.6 启动和关闭Hadoop集群 46
2.2.7 监控Hadoop集群 47
小结 49
实训 50
实训1 修改master虚拟机的IP地址 50
实训2 编写Shell脚本同步集群时间 50
课后习题 51
第3章 Hadoop基础操作 53
任务3.1 认识Hadoop安全模式 54
3.1.1 了解Hadoop安全模式 54
3.1.2 查看、解除和开启Hadoop安全模式 55
任务3.2 查看Hadoop集群的基本信息 56
3.2.1 查询集群的存储系统信息 57
3.2.2 查询集群的计算资源信息 60
任务3.3 上传文件到HDFS目录 62
3.3.1 了解HDFS 62
3.3.2 HDFS的基本操作 65
3.3.3 任务实现 68
任务3.4 运行 MapReduce任务 70
3.4.1 了解Hadoop官方的示例程序包 70
3.4.2 提交MapReduce任务给集群运行 70
任务3.5 管理多个MapReduce任务 74
3.5.1 查询MapReduce任务 74
3.5.2 中断MapReduce任务 76
小结 78
实训 79
实训1 统计文件中所有单词长度的太阳城
差 79
实训2 查询与中断MapReduce任务 79
课后习题 80
第4章 MapReduce入门编程 82
任务4.1 在IntelliJ IDEA中搭建MapReduce开发环境 83
4.1.1 在Windows下安装Java 83
4.1.2 下载与安装IntelliJ IDEA 86
4.1.3 创建MapReduce工程 88
4.1.4 配置MapReduce环境 90
任务4.2 通过源码初识MapReduce编程 92
4.2.1 了解MapReduce工作原理及核心组成 92
4.2.2 了解MapReduce实现词频统计的执行流程 93
4.2.3 读懂官方提供的WordCount源码 94
任务4.3 统计网站每日的访问次数 100
4.3.1 分析思路与处理逻辑 100
4.3.2 编写核心模块代码 101
4.3.3 任务实现 102
任务4.4 将网站每日访问次数根据访问次数进行升序排序 104
4.4.1 分析思路与处理逻辑 104
4.4.2 编写核心模块代码 105
4.4.3 任务实现 106
小结 108
实训 109
实训1 使用MapReduce编程统计某超市1月商品被购买的次数 109
实训2 使用MapReduce编程统计各科目的平均成绩 109
课后习题 110
第5章 MapReduce进阶编程 113
任务5.1 筛选日志文件并生成序列化文件 113
5.1.1 设置MapReduce输入格式 114
5.1.2 设置MapReduce输出格式 115
5.1.3 任务实现 116
任务5.2 使用Hadoop Java API读取序列化文件 118
5.2.1 使用FileSystem API管理文件夹 118
5.2.2 使用FileSystem API操作文件 122
5.2.3 使用FileSystem API读/写数据 124
5.2.4 任务实现 126
任务5.3 优化日志文件统计程序 128
5.3.1 自定义键值类型 128
5.3.2 初步探索Combiner 132
5.3.3 浅析Partitioner 134
5.3.4 自定义计数器 137
5.3.5 任务实现 139
任务5.4 在IntelliJ IDEA中打包并提交MapReduce程序 142
5.4.1 传递参数 142
5.4.2 使用Hadoop辅助类ToolRunner 144
5.4.3 自动打包并提交MapReduce任务 145
5.4.4 任务实现 148
小结 150
实训 150
实训1 使用MapReduce编程统计各科目成绩 的学生 150
实训2 使用MapReduce编程筛选出 出版年份的图书 151
课后习题 152
第6章 Hive数据仓库 155
任务6.1 认识Hive数据仓库 156
6.1.1 什么是Hive 156
6.1.2 了解Hive与传统数据库的对比 156
6.1.3 了解Hive系统架构 158
6.1.4 了解Hive数据模型 159
6.1.5 了解Hive执行流程 159
任务6.2 访问Hive的3种方式 160
6.2.1 设置内嵌模式 160
6.2.2 设置直连数据库模式 162
6.2.3 设置远程模式 165
任务6.3 实现Hive表的创建与修改 167
6.3.1 了解Hive数据定义语言的基本语法 168
6.3.2 创建表基本操作 171
6.3.3 修改表基本操作 174
任务6.4 实现Hive表中数据的增删查改 175
6.4.1 了解Hive数据操作语言的基本语法 175
6.4.2 向数据表中装载文件 177
6.4.3 查询数据 179
6.4.4 插入数据 182
6.4.5 删除表中数据 183
任务6.5 掉话率Top20基站统计 184
6.5.1 分析基本思路 184
6.5.2 任务实现 184
小结 186
实训 186
实训1 查询图书馆图书的被借阅次数及读者借阅图书的次数 186
实训2 Hive实现表的连接及信息查询处理 187
课后习题 188
第7章 HBase分布式数据库 190
任务7.1 认识HBase分布式数据库 191
7.1.1 什么是HBase 191
7.1.2 了解HBase系统架构 193
7.1.3 了解HBase数据模型 195
7.1.4 了解HBase读/写流程 196
任务7.2 安装部署HBase集群 198
7.2.1 了解并安装ZooKeeper 198
7.2.2 安装及配置HBase集群 203
任务7.3 掌握HBase常用的Shell命令 206
7.3.1 修改与删除表 208
7.3.2 查询表数据 210
任务7.4 使用HBase Java API实现表设计 212
7.4.1 创建Java项目 213
7.4.2 实现表的创建 215
7.4.3 向表中插入数据 216
任务7.5 查询分析通话记录数据 217
7.5.1 设计表并分析查询需求 217
7.5.2 任务实现 218
小结 225
实训 225
实训1 使用HBase Shell命令创建学生表并插入数据 225
实训2 使用HBase Java API对HBase数据库的表进行操作 226
课后习题 227
第8章 项目案例:电影网站用户影评分析 228
任务8.1 了解数据字段并分析需求 228
8.1.1 了解数据字段 228
8.1.2 统计分析需求描述 230
任务8.2 多维度分析用户影评 230
8.2.1 创建并配置工程项目 230
8.2.2 计算评分次数 多的10部电影及评分次数并分析 232
8.2.3 计算不 别评分 的10部电影及评分并分析 240
8.2.4 计算 电影各年龄段的平均影评并分析 250
8.2.5 计算影评库中各种类型电影中评分 的5部电影并分析 252
小结 258
附录A Linux常用操作命令 259
附录B Hadoop集群组件的常用端口及其说明 263