Hadoop+Spark大数据技术

基础知识+案例指导+综合应用“三位一体”
分享 推荐 2 收藏 106 阅读 4.9K
曾国荪 , 曹洁 (作者) 978-7-115-58327-7

关于本书的内容有任何问题,请联系 祝智敏

1.融入应用场景,理论讲解与动手实践相结合。
2.适配大数据处理主流技术,提供大量实践案例。
3.基础知识+案例指导+综合应用。
本书结合编者多年的程序设计、系统开发与课程讲授的经验,由浅入深、循序渐进地展开,使读者能够系统、全面地掌握程序设计的理论与应用。

内容摘要

本书主要讲解Hadoop的分布式文件系统、MapReduce编程模型和Spark大数据处理技术。全书共12章,具体包括大数据概述、Hadoop大数据处理架构、HDFS分布式文件系统、MapReduce分布式计算框架、HBase分布式数据库、Spark概述、基于Scala的Spark编程、Windows环境下Spark综合编程、Spark SQL结构化数据处理、Spark Streaming流计算、Spark GraphX图计算、项目实训:《平凡的世界》孙家人物关系图分析。 本书可作为高等院校计算机、信息管理、软件工程、大数据、人工智能等相关专业的大数据课程教材,也可供企业中从事大数据开发的工程师和科技工作者参考。

目录

第1章 Hadoop 大数据开发 环境
1.1 Hadoop 概述 ........................ 1
1.1.1 Hadoop 简介..................................... 1
1.1.2 Hadoop 的优势................................. 1
1.2 在 VirtualBox 上安装虚拟机 ..... 2
1.2.1 Master 节点的安装........................... 2
1.2.2 复制虚拟机....................................... 6
1.3 Hadoop 安装前的准备工作 .......8
1.3.1 Linux 主机的配置 ............................ 8
1.3.2 安装 SSH、配置 SSH 免密码登录... 9
1.3.3 安装 Java 环境................................ 10
1.4 Hadoop 的安装与配置........... 10
1.4.1 Hadoop 的安装............................... 10
1.4.2 Hadoop 单机模式的配置 ................11
1.4.3 Hadoop 伪分布式模式的配置 ....... 12
1.4.4 Hadoop 分布式模式的配置 ........... 15
1.5 习题................................... 22
第 2 章 HDFS 大数据分布式 存储
2.1 HDFS 的基本特征................. 23
2.2 HDFS 的存储架构及组件........ 24
2.2.1 HDFS 的存储架构.......................... 24
2.2.2 数据块............................................. 24
2.2.3 DataNode......................................... 25
2.2.4 NameNode....................................... 25
2.2.5 SecondaryNameNode...................... 26
2.2.6 心跳消息......................................... 26
2.2.7 客户端............................................. 27
2.3 HDFS 的 Shell 操作 ............. 27
2.3.1 查看命令的使用方法..................... 27
2.3.2 HDFS 常用的 Shell 操作................ 28
2.3.3 HDFS 的管理员命令...................... 32
2.3.4 HDFS 的 Java API 操作 ................. 32
2.3.5 HDFS 的 Web 管理界面................. 33
2.4 案例实战:HDFS 编程........... 34
2.4.1 安装 Eclipse .................................... 34
2.4.2 在 Eclipse 中创建项目 ................... 35
2.4.3 为项目添加需要用到的 JAR 包.... 36
2.4.4 编写 Java 应用程序........................ 38
2.4.5 编译与运行程序............................. 39
2.4.6 应用程序的部署............................. 40
2.5 习题 .................................. 42
第 3 章 MapReduce 分布式 计算框架
3.1 MapReduce 概述................ 43
3.1.1 并发、并行与分布式编程的概念... 43
3.1.2 MapReduce 并行编程模型............. 43
3.1.3 Map 函数和 Reduce 函数............... 44
3.2 MapReduce 工作原理...........45
3.2.1 MapReduce 体系架构.....................45
3.2.2 MapTask 工作原理 .........................47
3.2.3 ReduceTask 工作原理.....................48
3.3 案例实战:MapReduce 编程 .. 49
3.3.1 WordCount 执行流程示例..............49
3.3.2 WordCount 具体实现......................51
3.3.3 使用 Eclipse 编译与运行词频 统计程序.....................55
3.4 习题 ...................................59
第4章 HBase分布式数据库
4.1 HBase 概述 ........................60
4.1.1 HBase 的技术特点..........................60
4.1.2 HBase 与传统关系数据库的区别....60
4.1.3 HBase 与 Hadoop 中其他组件的关系..............61
4.2 HBase 系统架构和数据访问流程....................................62
4.2.1 HBase 系统架构..............................62
4.2.2 HBase 数据访问流程......................64
4.3 HBase 数据表 .....................67
4.3.1 HBase 数据表的逻辑视图..............67
4.3.2 HBase 数据表的物理视图..............68
4.3.3 HBase 数据表面向列的存储..........70
4.3.4 HBase 数据表的查询方式..............71
4.3.5 HBase 表结构的设计......................71
4.4 HBase 安装 ........................71
4.4.1 下载安装文件 .................................71
4.4.2 配置环境变量 .................................72
4.4.3 添加用户权限 .................................72
4.4.4 查看 HBase 的版本信息.................72
4.5 HBase 配置 ........................73
4.5.1 单机模式的配置 .............................73
4.5.2 伪分布式模式的配置 .....................74
4.6 HBase 的 Shell 操作.............76
4.6.1 基本操作.........................................77
4.6.2 创建表.............................................78
4.6.3 插入与更新表中的数据 .................79
4.6.4 查询表中的数据 .............................80
4.6.5 删除表中的数据 .............................81
4.6.6 表的启用/禁用 ................................82
4.6.7 修改表结构 .....................................82
4.6.8 删除 HBase 表.................................83
4.7 HBase 的 Java API 操作.......83
4.7.1 HBase 数据库管理 API ..................83
4.7.2 HBase 数据库表 API ......................84
4.7.3 HBase 数据库表的行/列 API .........85
4.8 案例实战:HBase 编程 ..........87
4.8.1 在 Eclipse 中创建项目....................87
4.8.2 添加项目需要用到的 JAR 包 ........88
4.8.3 编写 Java 应用程序 ........................89
4.8.4 编译与运行程序 .............................91
4.9 习题...................................92
第 5 章 Scala 基础编程
5.1 Scala 概述 ..........................93
5.1.1 Scala 特性........................................93
5.1.2 在 Windows 环境下安装 Scala.......94
5.2 Scala 基础语法 ....................95
5.2.1 声明常量和变量 .............................95
5.2.2 输出值的方式 .................................96
5.2.3 数据类型 .........................................98
5.2.4 运算符 ...........................................100
5.3 Scala 控制结构 ..................102
5.3.1 条件表达式 ...................................102
5.3.2 if...else 选择结构...........................102
5.3.3 编写和运行 Scala 脚本.................103
5.3.4 循环结构 .......................................104
5.4 数组.................................105
5.4.1 定长数组 .......................................105
5.4.2 变长数组 .......................................106
5.4.3 遍历数组 .......................................107
5.4.4 数组转换 .......................................108
5.4.5 数组对象的操作方法 ...................109
5.5 列表................................. 112
5.5.1 不可变列表....................................112
5.5.2 可变列表........................................115
5.6 集合..................................116
5.6.1 不可变集合....................................116
5.6.2 可变集合........................................119
5.7 元组..................................119
5.7.1 元组的常用操作........................... 120
5.7.2 拉链操作....................................... 121
5.8 映射 ................................ 122
5.8.1 不可变映射................................... 122
5.8.2 可变映射....................................... 124
5.9 Scala 函数 ....................... 125
5.9.1 函数的定义................................... 125
5.9.2 匿名函数....................................... 127
5.9.3 高阶函数....................................... 127
5.10 Scala 模式匹配 ................ 127
5.11 Scala 面向对象编程........... 129
5.11.1 类与对象..................................... 129
5.11.2 单例对象和伴生对象................. 130
5.12 Scala 读写文件 ................ 132
5.12.1 读文件......................................... 132
5.12.2 写文件......................................... 133
5.13 习题............................... 133
第 6 章 Spark 大数据处理框架
6.1 Spark 概述 ....................... 134
6.1.1 Spark 的产生背景......................... 134
6.1.2 Spark 的优点 ................................ 135
6.1.3 Spark 的应用场景......................... 135
6.1.4 Spark 的生态系统......................... 136
6.2 Spark 的运行机制 .............. 137
6.2.1 Spark 的基本概念......................... 137
6.2.2 Spark 的运行架构......................... 139
6.3 Spark 的安装及配置............ 140
6.3.1 Spark 的基础环境......................... 140
6.3.2 下载安装文件............................... 140
6.3.3 单机模式的配置........................... 140
6.3.4 伪分布式模式的配置................... 141
6.4 使用 Spark Shell 编写 Scala代码 ................................ 143
6.4.1 启动 Spark Shell ........................... 143
6.4.2 退出 Spark Shell ........................... 143
6.5 使用 PySpark Shell 编写
Python 代码..................... 144
6.6 习题 ................................ 144
第 7 章 Spark RDD 编程
7.1 创建 RDD 的方式................ 145
7.1.1 使用程序中的数据集创建 RDD .... 146
7.1.2 使用文本文件创建 RDD.............. 146
7.1.3 使用 JSON 文件创建 RDD.......... 148
7.1.4 使用 CSV 文件创建 RDD............ 150
7.2 RDD 的操作方法 ................ 150
7.2.1 转换操作....................................... 150
7.2.2 行动操作....................................... 158
7.3 RDD 之间的依赖关系 ...........161
7.3.1 窄依赖........................................... 161
7.3.2 宽依赖........................................... 162
7.4 RDD 的持久化....................162
7.5 案例实战:Spark RDD 实现词频统计........................... 164
7.5.1 安装 sbt ......................................... 164
7.5.2 编写词频统计的 Scala 应用程序.... 165
7.5.3 用 sbt 打包 Scala 应用程序.......... 166
7.5.4 通过 spark-submit 运行程序........ 167
7.6 Spark 读写 HBase 数据...... 167
7.6.1 读 HBase 的数据 .......................... 167
7.6.2 向 HBase 写数据 .......................... 170
7.7 习题 .................................171
第 8 章 Windows 环境下Spark 综合编程
8.1 Windows 环境下 Spark 与
Hadoop 的安装 ..................172
IV Hadoop+Spark 大数据技术 (微课版)
8.1.1 Windows 环境下 Spark 的安装....172
8.1.2 Windows 环境下 Hadoop 的安装....172
8.2 用 IntelliJ IDEA 搭建 Spark
开发环境............................173
8.2.1 下载与安装 IntelliJ IDEA............. 173
8.2.2 Scala 插件的安装与使用.............. 175
8.2.3 配置全局的 JDK 和 SDK.............181
8.2.4 Maven 的安装与项目开发 ...........181
8.2.5 开发本地 Spark 应用....................184
8.3 案例实战:Spark RDD 学生考试成绩分析.............186
8.4 习题 .................................187
第 9 章 Spark SQL 结构化数据处理
9.1 Spark SQL 概述 ................188
9.1.1 Spark SQL 简介 ............................188
9.1.2 DataFrame 与 Dataset....................188
9.2 创建 DataFrame 对象的
方式.................................189
9.2.1 使用 Parquet 文件创建 DataFrame对象................. 189
9.2.2 使用 JSON 文件创建 DataFrame对象................190
9.2.3 使用 RDD 创建 DataFrame对象........................191
9.2.4 使用 SparkSession 方式创建DataFrame 对象..............191
9.2.5 使用 Seq 创建 DataFrame 对象....193
9.3 将 DataFrame 对象保存为不同格式的文件 ............193
9.3.1 通过 write.×××()方法保存DataFrame 对象..................193
9.3.2 通过 write.format()方法保存DataFrame 对象....................194
9.3.3 先将 DataFrame 对象转化成 RDD再保存到文件中 .............194
9.4 DataFrame 对象的常用操作....194
9.4.1 展示数据 .......................................194
9.4.2 筛选 ...............................................196
9.4.3 排序 ...............................................198
9.4.4 汇总与聚合 ...................................199
9.4.5 统计 ...............................................202
9.4.6 合并 ...............................................203
9.4.7 连接 ...............................................203
9.5 创建 Dataset 对象 ..............205
9.6 案例实战:瓜子二手车数据分析.............207
9.6.1 设置程序入口并读取数据 ...........207
9.6.2 数据清洗 .......................................208
9.6.3 折扣率分析 ...................................209
9.6.4 数据统计 .......................................210
9.7 习题................................. 211
第 10 章 Spark Streaming流计算
10.1 流计算概述.......................212
10.1.1 流数据概述 .................................212
10.1.2 批处理与流处理 .........................212
10.2 Spark Streaming工作原理............. 213
10.3 Spark Streaming编程模型..........................214
10.3.1 编写 Spark Streaming 程序的步骤 ..............214
10.3.2 创建 StreamingContext 对象.......214
10.4 创建 DStream 对象...........215
10.4.1 创建输入源为文件流的 DStream对象 ................216
10.4.2 定义 DStream 的数据源为套接字流 ....................217
10.4.3 定义 DStream 的数据源为 RDD队列流 .............221
10.5 DStream 操作 .................222
10.5.1 DStream 无状态转换操作 ..........222
10.5.2 DStream 有状态转换操作 ..........224
10.5.3 DStream 输出操作...................... 226
10.6 案例实战:实时统计文件流的词频.............. 227
10.7 习题............................... 228
第 11 章 Spark GraphX 图计算
11.1 GraphX 图计算概述 .......... 229
11.1.1 图结构......................................... 229
11.1.2 图计算的典型应用..................... 229
11.1.3 GraphX 简介............................... 230
11.2 GraphX 图计算模型 .......... 231
11.2.1 属性图......................................... 231
11.2.2 GraphX 图存储模式................... 233
11.2.3 GraphX 图计算原理................... 234
11.3 GraphX 属性图的创建 ....... 235
11.3.1 使用顶点 RDD 和边 RDD创建属性图............ 235
11.3.2 使用边集合的 RDD 创建属性图............... 236
11.3.3 使用边的两个顶点的 ID 所组成的二元组 RDD 创建属性图 ...... 237
11.4 属性图操作 ...................... 238
11.4.1 图的属性操作............................. 238
11.4.2 图的视图操作............................. 239
11.4.3 图的缓存操作............................. 242
11.4.4 图的顶点和边的属性变换 ......... 243
11.4.5 图的连接操作............................. 244
11.4.6 图的结构操作............................. 245
11.5 习题............................... 247
第 12 章 项目实训:《平凡的世界》中部分人物关系图分析
12.1 需求分析 ......................... 248
12.1.1 《平凡的世界》概述................. 248
12.1.2 《平凡的世界》中部分人物关系图可视化................ 248
12.1.3 需求分析..................................... 252
12.2 《平凡的世界》中部分人物关系图分析....... 252
12.2.1 功能实现..................................... 252
12.2.2 人物关系图分析结果................. 259
参考文献 ............................. 262

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

曾国荪,同济大学电子与信息工程学院计算机科学与技术系,教授,博导。长期从事并行分布处理、可信网络软件设计与验证、云计算和大数据等领域的理论和应用研究工作。先后主持负责1项973课题、3项863课题、7项国家基金项目。在IEEE Transactions,中国科学、计算机学报、软件学报等国内外核心刊物上发表学术论文250余篇。出版著作3本。
曹洁,博士,毕业于同济大学计算机软件与理论专业,郑州轻工业大学软件学院教师,硕导。研究方向:并行分布式处理、云计算等。在软件学报、电子学报、计算机研究与发展、通信学报等核心刊物上发表学术论文10余篇。主讲:大数据技术、大数据分析等课程。主编出版11部教材。

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部