大数据技术及其应用(第二版) / 普通高等教育应用型系列教材
¥48.00定价
作者: 吕林涛
出版时间:2022年8月
出版社:科学出版社
- 科学出版社
- 9787030561435
- 2版
- 301025
- 61231867-5
- 平装
- 16开
- 2022年8月
- 430
- 255
- 工学
- 计算机科学与技术
- 计算机类
- 本科
内容简介
《大数据技术及其应用/普通高等教育“十三五”规划教材》分为上篇(基础篇)、中篇(编程篇)和下篇(应用篇)三篇,共13章。书中主要内容包括大数据技术概述、大数据处理平台Hadoop、分布式文件系统HDFS、分布式计算框架MapReduce、内存型计算框架Spark、分布式数据库HBase、数据仓库Hive、Pig语言、Python语言、分布式数据收集系统Chukwa、分布式协调服务ZooKeeper、大规模微博传播分析案例和图书推荐案例等。
《大数据技术及其应用/普通高等教育“十三五”规划教材》将理论与科研实践相结合,注重大数据技术的系统性、实用性和先进性,配有大量的应用案例,不仅能够帮助读者提高大数据技术的应用与研究水平,而且能够提高读者的综合应用创新能力。
《大数据技术及其应用/普通高等教育“十三五”规划教材》可作为高等院校计算机科学与技术、物联网工程、数据科学与大数据技术等专业,或新工科相关专业本科生、研究生的教材,也可供从事大数据技术应用与开发,以及大数据系统运营与维护的科研、工程技术人员参考使用。
《大数据技术及其应用/普通高等教育“十三五”规划教材》将理论与科研实践相结合,注重大数据技术的系统性、实用性和先进性,配有大量的应用案例,不仅能够帮助读者提高大数据技术的应用与研究水平,而且能够提高读者的综合应用创新能力。
《大数据技术及其应用/普通高等教育“十三五”规划教材》可作为高等院校计算机科学与技术、物联网工程、数据科学与大数据技术等专业,或新工科相关专业本科生、研究生的教材,也可供从事大数据技术应用与开发,以及大数据系统运营与维护的科研、工程技术人员参考使用。
目录
上篇 基 础 篇
第1章 大数据技术概述 3
1.1 大数据的发展历史 3
1.2 大数据的基本特征 5
1.3 大数据处理框架 6
1.4 大数据技术的主要应用领域 6
1.4.1 大数据技术在公共事业领域的应用 6
1.4.2 大数据技术在消费领域的应用 6
1.4.3 大数据技术在金融领域的应用 7
1.4.4 大数据技术在工业领域的应用 8
1.4.5 大数据技术在医疗领域的应用 8
1.4.6 大数据技术在农业领域的应用 9
习题 9
参考文献 10
第2章 大数据处理平台Hadoop 11
2.1 Hadoop简介 11
2.1.1 Hadoop概述 11
2.1.2 Hadoop特性 11
2.1.3 Hadoop应用现状 12
2.2 Hadoop架构与组成 14
2.2.1 Hadoop架构 14
2.2.2 Hadoop组成模块 14
习题 17
参考文献 17
第3章 分布式文件系统HDFS 18
3.1 HDFS简介 18
3.1.1 HDFS设计理念 18
3.1.2 HDFS的缺点 19
3.1.3 基本组成结构与文件访问过程 19
3.2 HDFS体系架构 20
3.2.1 NameNode 22
3.2.2 DataNode 23
3.2.3 Client 24
3.3 HDFS数据读写过程 24
3.3.1 读取数据 24
3.3.2 写数据 25
3.4 保障HDFS可靠性的措施 26
3.4.1 冗余备份 26
3.4.2 副本存放 26
3.4.3 心跳检测 26
3.4.4 安全模式 27
3.4.5 数据完整性检测 27
3.4.6 空间回收 27
3.4.7 MetaData磁盘失效 27
3.4.8 快照 27
3.5 HDFS Shell 28
3.5.1 通用选项 28
3.5.2 用户命令 28
3.5.3 管理与更新 30
3.6 HDFS Java API编程实践 31
3.6.1 HDFS常用Java API介绍 31
3.6.2 HDFS Java API编程案例 35
习题 39
参考文献 39
第4章 分布式计算框架MapReduce 41
4.1 MapReduce框架结构 41
4.1.1 MapReduce的函数式编程概述 41
4.1.2 MapReduce组成 44
4.1.3 MapReduce框架核心优势 45
4.2 WordCount实例分析 46
4.2.1 WordCount任务 46
4.2.2 WordCount设计思路 46
4.2.3 WordCount执行过程 47
4.3 MapReduce执行流程 48
4.3.1 MapReduce执行流程概述 48
4.3.2 MapReduce各个执行阶段 48
4.4 MapReduce运行原理 54
4.4.1 作业提交 54
4.4.2 作业初始化 55
4.4.3 任务分配 57
4.4.4 任务执行 57
4.4.5 进度和状态的更新 58
4.4.6 作业完成 58
4.5 MapReduce性能优化 58
4.5.1 任务调度 58
4.5.2 数据预处理和InputSplit的大小 59
4.5.3 Map和Reduce任务的数量 59
4.5.4 Combine函数 59
4.5.5 压缩 60
4.5.6 自定义Comparator 60
4.6 MapReduce编程实践 60
4.6.1 编程实现单词计数 60
4.6.2 编程实现文本去重 67
习题 69
参考文献 70
第5章 内存型计算框架Spark 71
5.1 Spark概述 71
5.1.1 Spark简介 71
5.1.2 Spark架构 73
5.1.3 Spark分布式系统与单机多核系统的区别 74
5.2 Spark计算模型 75
5.2.1 弹性分布式数据集 76
5.2.2 Spark算子分类 78
5.3 Spark工作机制 79
5.3.1 Spark应用执行机制 79
5.3.2 Spark调度与任务分配机制 83
5.3.3 Spark I/O机制 85
5.3.4 Spark通信机制 89
5.3.5 Spark容错机制 89
5.3.6 Shuffle机制 92
5.4 Spark编程实践 93
习题 94
参考文献 95
第6章 分布式数据库HBase 96
6.1 HBase概述 96
6.2 HBase数据模型 97
6.2.1 数据模型概述 97
6.2.2 数据模型及相关概念 97
6.2.3 概念视图 98
6.2.4 物理视图 98
6.2.5 面向列的存储 99
6.3 HBase的实现原理 100
6.3.1 HBase的功能组件 100
6.3.2 表和Region 100
6.3.3 Region的定位 101
6.4 HBase运行机制 103
6.4.1 HBase系统架构 103
6.4.2 Region服务器的工作原理 104
6.4.3 Store工作原理 105
6.4.4 HLog工作原理 105
6.5 HBase编程基础 106
6.5.1 HBase常用的Shell命令 106
6.5.2 HBase常用的Java API及应用实例 107
6.6 HBase编程实践 111
6.6.1 编程实现对学生数据表的操作 111
6.6.2 HBase与MapReduce集成、数据导入导出 112
习题 113
参考文献 113
第7章 数据仓库Hive 114
7.1 Hive概述 114
7.1.1 Hive的工作机制 114
7.1.2 Hive的数据类型 115
7.1.3 Hive的架构 116
7.2 HiveQL数据定义 117
7.2.1 Hive数据库 117
7.2.2 修改数据库 119
7.2.3 创建表 119
7.2.4 分区表 121
7.2.5 删除表 125
7.2.6 修改表 125
7.3 HiveQL数据操作 128
7.3.1 向表中装载数据 128
7.3.2 通过查询语句向表中插入数据 129
7.3.3 单个查询语句中创建表并加载数据 130
7.3.4 导出数据 131
7.4 HiveQL查询 132
7.4.1 SELECT语句 132
7.4.2 WHERE语句 134
7.4.3 GROUP BY子句和HAVING子句 135
7.4.4 JOIN语句 136
7.4.5 类型转换 139
7.4.6 UNION ALL语句 139
7.5 Hive编程实践 140
7.5.1 编程实现通过日期计算星座的函数 140
7.5.2 编写自定义函数nvl() 142
习题 144
参考文献 145
中篇 编 程 篇
第8章 Pig语言 149
8.1 Pig基本框架 149
8.2 Pig数据模型 150
8.2.1 数据类型 150
8.2.2 模式 152
8.2.3 转换 152
8.3 Pig Latin编程语言 153
8.3.1 Pig Latin语言简介 153
8.3.2 运算符 153
8.3.3 用户自定义函数UDF 154
8.3.4 Pig Latin 语法 154
8.3.5 数据处理操作 157
8.4 Pig和其他Hadoop社区成员的区别 159
8.4.1 Pig和Hive的区别 159
8.4.2 Cascading和Pig的区别 160
8.4.3 NoSQL数据库 160
8.4.4 HBase 160
8.5 Pig编程实践 161
8.5.1 从文件导入数据 161
8.5.2 查询 162
8.5.3 表列定义别名 162
8.5.4 表的排序 162
8.5.5 条件查询 162
8.5.6 表连接 163
8.5.7 多张表交叉查询 163
8.5.8 分组查询 164
8.5.9 表分组并统计 164
8.5.10 查询去重 164
习题 164
参考文献 165
第9章 Python语言 166
9.1 概述 166
9.1.1 Python语言简介 166
9.1.2 Python语言发展 166
9.1.3 Python语言基础 167
9.1.4 Python语言的基础数据类型 169
9.1.5 Python语言的常用操作运算符 174
9.1.6 Python语言的数据结构 175
9.1.7 Python语言的控制语句 180
9.1.8 Python语言的函数 184
9.1.9 Python语言文件基础 186
9.2 Python语言高级应用 187
9.2.1 pyplot基本绘图流程 188
9.2.2 绘制函数曲线 188
9.2.3 创建子图 189
9.2.4 使用rc 配置文件自定义图形的各种默认属性 190
9.3 Python编程实践 191
习题 194
参考文献 195
第10章 分布式数据收集系统Chukwa 196
10.1 Chukwa概述 196
10.2 Chukwa架构与设计 197
10.2.1 Chukwa的代理与适配器 198
10.2.2 Chukwa的收集器 199
10.2.3 MapReduce作业 199
10.2.4 其他数据接口与默认数据支持 200
10.3 Chukwa的安装与配置 200
10.3.1 Chukwa安装 200
10.3.2 节点代理配置 201
10.3.3 收集器 202
10.4 Chukwa的测试 204
10.4.1 数据生成 204
10.4.2 数据收集 204
10.4.3 数据处理 205
10.4.4 数据析取 205
10.4.5 数据稀释 205
习题 206
参考文献 206
第11章 分布式协调服务ZooKeeper 207
11.1 ZooKeeper概述 207
11.1.1 ZooKeeper起源 207
11.1.2 ZooKeeper的特性 207
11.1.3 ZooKeeper的设计目标 208
11.2 ZooKeeper的基本概念 209
11.2.1 集群角色 209
11.2.2 ZooKeeper系统模型 210
11.2.3 ZooKeeper数据节点 211
11.2.4 Watcher 212
11.2.5 ACL 212
11.2.6 ZooKeeper的算法 213
11.3 ZooKeeper的工作原理 216
11.3.1 ZooKeeper选主流程 216
11.3.2 ZooKeeper同步流程 218
11.3.3 工作流程 219
11.4 ZooKeeper应用场景 220
11.4.1 集群管理 220
11.4.2 会话 223
11.4.3 锁服务 223
11.4.4 分布式队列 227
11.5 ZooKeeper编程实践 229
11.5.1 编程实现创建节点 229
11.5.2 Watcher 232
习题 234
参考文献 234
下篇 应 用 篇
第12章 大规模微博传播分析案例 237
12.1 微博分析问题背景与并行化处理过程 237
12.2 并行化微博数据获取算法的设计实现 238
12.2.1 二次转发数统计 240
12.2.2 转发者粉丝统计 241
12.2.3 转发者性别统计 242
12.2.4 转发层数统计 243
12.2.5 转发者位置统计 244
12.2.6 转发时间统计 244
习题 245
参考文献 245
第13章 图书推荐案例 246
13.1 图书推荐和关联规则挖掘简介 246
13.2 图书频繁项集挖掘设计与数据获取 247
13.2.1 Apriori算法概述 247
13.2.2 书评大数据的获取 247
13.3 图书关联规则挖掘并行化算法 248
13.3.1 2频繁项集的计算 249
13.3.2 k频繁项集的计算 254
习题 254
参考文献 255
第1章 大数据技术概述 3
1.1 大数据的发展历史 3
1.2 大数据的基本特征 5
1.3 大数据处理框架 6
1.4 大数据技术的主要应用领域 6
1.4.1 大数据技术在公共事业领域的应用 6
1.4.2 大数据技术在消费领域的应用 6
1.4.3 大数据技术在金融领域的应用 7
1.4.4 大数据技术在工业领域的应用 8
1.4.5 大数据技术在医疗领域的应用 8
1.4.6 大数据技术在农业领域的应用 9
习题 9
参考文献 10
第2章 大数据处理平台Hadoop 11
2.1 Hadoop简介 11
2.1.1 Hadoop概述 11
2.1.2 Hadoop特性 11
2.1.3 Hadoop应用现状 12
2.2 Hadoop架构与组成 14
2.2.1 Hadoop架构 14
2.2.2 Hadoop组成模块 14
习题 17
参考文献 17
第3章 分布式文件系统HDFS 18
3.1 HDFS简介 18
3.1.1 HDFS设计理念 18
3.1.2 HDFS的缺点 19
3.1.3 基本组成结构与文件访问过程 19
3.2 HDFS体系架构 20
3.2.1 NameNode 22
3.2.2 DataNode 23
3.2.3 Client 24
3.3 HDFS数据读写过程 24
3.3.1 读取数据 24
3.3.2 写数据 25
3.4 保障HDFS可靠性的措施 26
3.4.1 冗余备份 26
3.4.2 副本存放 26
3.4.3 心跳检测 26
3.4.4 安全模式 27
3.4.5 数据完整性检测 27
3.4.6 空间回收 27
3.4.7 MetaData磁盘失效 27
3.4.8 快照 27
3.5 HDFS Shell 28
3.5.1 通用选项 28
3.5.2 用户命令 28
3.5.3 管理与更新 30
3.6 HDFS Java API编程实践 31
3.6.1 HDFS常用Java API介绍 31
3.6.2 HDFS Java API编程案例 35
习题 39
参考文献 39
第4章 分布式计算框架MapReduce 41
4.1 MapReduce框架结构 41
4.1.1 MapReduce的函数式编程概述 41
4.1.2 MapReduce组成 44
4.1.3 MapReduce框架核心优势 45
4.2 WordCount实例分析 46
4.2.1 WordCount任务 46
4.2.2 WordCount设计思路 46
4.2.3 WordCount执行过程 47
4.3 MapReduce执行流程 48
4.3.1 MapReduce执行流程概述 48
4.3.2 MapReduce各个执行阶段 48
4.4 MapReduce运行原理 54
4.4.1 作业提交 54
4.4.2 作业初始化 55
4.4.3 任务分配 57
4.4.4 任务执行 57
4.4.5 进度和状态的更新 58
4.4.6 作业完成 58
4.5 MapReduce性能优化 58
4.5.1 任务调度 58
4.5.2 数据预处理和InputSplit的大小 59
4.5.3 Map和Reduce任务的数量 59
4.5.4 Combine函数 59
4.5.5 压缩 60
4.5.6 自定义Comparator 60
4.6 MapReduce编程实践 60
4.6.1 编程实现单词计数 60
4.6.2 编程实现文本去重 67
习题 69
参考文献 70
第5章 内存型计算框架Spark 71
5.1 Spark概述 71
5.1.1 Spark简介 71
5.1.2 Spark架构 73
5.1.3 Spark分布式系统与单机多核系统的区别 74
5.2 Spark计算模型 75
5.2.1 弹性分布式数据集 76
5.2.2 Spark算子分类 78
5.3 Spark工作机制 79
5.3.1 Spark应用执行机制 79
5.3.2 Spark调度与任务分配机制 83
5.3.3 Spark I/O机制 85
5.3.4 Spark通信机制 89
5.3.5 Spark容错机制 89
5.3.6 Shuffle机制 92
5.4 Spark编程实践 93
习题 94
参考文献 95
第6章 分布式数据库HBase 96
6.1 HBase概述 96
6.2 HBase数据模型 97
6.2.1 数据模型概述 97
6.2.2 数据模型及相关概念 97
6.2.3 概念视图 98
6.2.4 物理视图 98
6.2.5 面向列的存储 99
6.3 HBase的实现原理 100
6.3.1 HBase的功能组件 100
6.3.2 表和Region 100
6.3.3 Region的定位 101
6.4 HBase运行机制 103
6.4.1 HBase系统架构 103
6.4.2 Region服务器的工作原理 104
6.4.3 Store工作原理 105
6.4.4 HLog工作原理 105
6.5 HBase编程基础 106
6.5.1 HBase常用的Shell命令 106
6.5.2 HBase常用的Java API及应用实例 107
6.6 HBase编程实践 111
6.6.1 编程实现对学生数据表的操作 111
6.6.2 HBase与MapReduce集成、数据导入导出 112
习题 113
参考文献 113
第7章 数据仓库Hive 114
7.1 Hive概述 114
7.1.1 Hive的工作机制 114
7.1.2 Hive的数据类型 115
7.1.3 Hive的架构 116
7.2 HiveQL数据定义 117
7.2.1 Hive数据库 117
7.2.2 修改数据库 119
7.2.3 创建表 119
7.2.4 分区表 121
7.2.5 删除表 125
7.2.6 修改表 125
7.3 HiveQL数据操作 128
7.3.1 向表中装载数据 128
7.3.2 通过查询语句向表中插入数据 129
7.3.3 单个查询语句中创建表并加载数据 130
7.3.4 导出数据 131
7.4 HiveQL查询 132
7.4.1 SELECT语句 132
7.4.2 WHERE语句 134
7.4.3 GROUP BY子句和HAVING子句 135
7.4.4 JOIN语句 136
7.4.5 类型转换 139
7.4.6 UNION ALL语句 139
7.5 Hive编程实践 140
7.5.1 编程实现通过日期计算星座的函数 140
7.5.2 编写自定义函数nvl() 142
习题 144
参考文献 145
中篇 编 程 篇
第8章 Pig语言 149
8.1 Pig基本框架 149
8.2 Pig数据模型 150
8.2.1 数据类型 150
8.2.2 模式 152
8.2.3 转换 152
8.3 Pig Latin编程语言 153
8.3.1 Pig Latin语言简介 153
8.3.2 运算符 153
8.3.3 用户自定义函数UDF 154
8.3.4 Pig Latin 语法 154
8.3.5 数据处理操作 157
8.4 Pig和其他Hadoop社区成员的区别 159
8.4.1 Pig和Hive的区别 159
8.4.2 Cascading和Pig的区别 160
8.4.3 NoSQL数据库 160
8.4.4 HBase 160
8.5 Pig编程实践 161
8.5.1 从文件导入数据 161
8.5.2 查询 162
8.5.3 表列定义别名 162
8.5.4 表的排序 162
8.5.5 条件查询 162
8.5.6 表连接 163
8.5.7 多张表交叉查询 163
8.5.8 分组查询 164
8.5.9 表分组并统计 164
8.5.10 查询去重 164
习题 164
参考文献 165
第9章 Python语言 166
9.1 概述 166
9.1.1 Python语言简介 166
9.1.2 Python语言发展 166
9.1.3 Python语言基础 167
9.1.4 Python语言的基础数据类型 169
9.1.5 Python语言的常用操作运算符 174
9.1.6 Python语言的数据结构 175
9.1.7 Python语言的控制语句 180
9.1.8 Python语言的函数 184
9.1.9 Python语言文件基础 186
9.2 Python语言高级应用 187
9.2.1 pyplot基本绘图流程 188
9.2.2 绘制函数曲线 188
9.2.3 创建子图 189
9.2.4 使用rc 配置文件自定义图形的各种默认属性 190
9.3 Python编程实践 191
习题 194
参考文献 195
第10章 分布式数据收集系统Chukwa 196
10.1 Chukwa概述 196
10.2 Chukwa架构与设计 197
10.2.1 Chukwa的代理与适配器 198
10.2.2 Chukwa的收集器 199
10.2.3 MapReduce作业 199
10.2.4 其他数据接口与默认数据支持 200
10.3 Chukwa的安装与配置 200
10.3.1 Chukwa安装 200
10.3.2 节点代理配置 201
10.3.3 收集器 202
10.4 Chukwa的测试 204
10.4.1 数据生成 204
10.4.2 数据收集 204
10.4.3 数据处理 205
10.4.4 数据析取 205
10.4.5 数据稀释 205
习题 206
参考文献 206
第11章 分布式协调服务ZooKeeper 207
11.1 ZooKeeper概述 207
11.1.1 ZooKeeper起源 207
11.1.2 ZooKeeper的特性 207
11.1.3 ZooKeeper的设计目标 208
11.2 ZooKeeper的基本概念 209
11.2.1 集群角色 209
11.2.2 ZooKeeper系统模型 210
11.2.3 ZooKeeper数据节点 211
11.2.4 Watcher 212
11.2.5 ACL 212
11.2.6 ZooKeeper的算法 213
11.3 ZooKeeper的工作原理 216
11.3.1 ZooKeeper选主流程 216
11.3.2 ZooKeeper同步流程 218
11.3.3 工作流程 219
11.4 ZooKeeper应用场景 220
11.4.1 集群管理 220
11.4.2 会话 223
11.4.3 锁服务 223
11.4.4 分布式队列 227
11.5 ZooKeeper编程实践 229
11.5.1 编程实现创建节点 229
11.5.2 Watcher 232
习题 234
参考文献 234
下篇 应 用 篇
第12章 大规模微博传播分析案例 237
12.1 微博分析问题背景与并行化处理过程 237
12.2 并行化微博数据获取算法的设计实现 238
12.2.1 二次转发数统计 240
12.2.2 转发者粉丝统计 241
12.2.3 转发者性别统计 242
12.2.4 转发层数统计 243
12.2.5 转发者位置统计 244
12.2.6 转发时间统计 244
习题 245
参考文献 245
第13章 图书推荐案例 246
13.1 图书推荐和关联规则挖掘简介 246
13.2 图书频繁项集挖掘设计与数据获取 247
13.2.1 Apriori算法概述 247
13.2.2 书评大数据的获取 247
13.3 图书关联规则挖掘并行化算法 248
13.3.1 2频繁项集的计算 249
13.3.2 k频繁项集的计算 254
习题 254
参考文献 255