书籍详情
Spark 3.x大数据分析实战(视频教学版)
作者:张伟洋
出版社:清华大学出版社
出版时间:2022-09-01
ISBN:9787302614500
定价:¥89.00
购买这本书可以去
内容简介
本书基于Spark 3.2.x版本,从Spark核心编程语言Scala讲起,涵盖了当前整个Spark生态系统主流的大数据开发技术。全书共9章,第1章讲解了Scala语言的基础知识,包括IDEA工具的使用等;第2章讲解了Spark的主要组件、集群架构原理、集群环境搭建以及Spark应用程序的提交和运行;第3~9章讲解了离线计算框架Spark RDD、Spark SQL和实时计算框架Kafka、Spark Streaming、Structured Streaming以及图计算框架GraphX等的基础知识、架构原理,同时包括常用Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、HBase、Kafka的整合操作。 本书通俗易懂,案例丰富,注重实操,适合Spark新手和大数据开发人员阅读,也可作为培训机构和高校大数据及相关专业的教学用书。
作者简介
张伟洋,大数据领域资深专家,拥有多年互联网公司软件研发经验,曾在互联网旅游公司担任软件研发事业部经理。先后多次为中国海洋大学、曲阜师范大学、青岛理工大学等高校举行大数据专题讲座,对Hadoop及周边大数据框架ZooKeeper、Hive、HBase、Storm、Spark、Flink等有深入的研究,公众号“奋斗在IT” 的创办人。已出版《Hadoop大数据技术开发实战》《Flink大数据分析实战》等图书。
目录
第1章 Spark开发准备——Scala基础 1
1.1 什么是Scala 1
1.2 安装Scala 1
1.2.1 在Windows中安装Scala 2
1.2.2 在CentOS 7中安装Scala 3
1.3 Scala基础 3
1.3.1 变量声明 4
1.3.2 数据类型 5
1.3.3 表达式 6
1.3.4 循环 7
1.3.5 方法与函数 9
1.4 集合 12
1.4.1 数组 12
1.4.2 List 14
1.4.3 Map映射 15
1.4.4 元组 17
1.4.5 Set 18
1.5 类和对象 19
1.5.1 类的定义 19
1.5.2 单例对象 20
1.5.3 伴生对象 20
1.5.4 get和set方法 20
1.5.5 构造器 23
1.6 抽象类和特质 25
1.6.1 抽象类 25
1.6.2 特质 26
1.7 使用Eclipse创建Scala项目 28
1.7.1 安装Scala for Eclipse IDE 28
1.7.2 创建Scala项目 29
1.8 使用IntelliJ IDEA创建Scala项目 29
1.8.1 在IDEA中安装Scala插件 30
1.8.2 创建Scala项目 31
1.9 动手练习 32
第2章 初识Spark 33
2.1 大数据开发的总体架构 33
2.2 什么是Spark 34
2.3 Spark的主要组件 35
2.4 Spark运行架构 37
2.4.1 YARN集群架构 37
2.4.2 Spark Standalone架构 40
2.4.3 Spark On YARN架构 42
2.5 Spark集群搭建与测试 44
2.5.1 Spark Standalone模式的集群搭建 44
2.5.2 Spark On YARN模式的集群搭建 46
2.5.3 Spark HA的搭建 47
2.6 Spark应用程序的提交 51
2.7 Spark Shell的使用 53
2.8 动手练习 55
第3章 Spark RDD弹性分布式数据集 56
3.1 什么是RDD 56
3.2 创建RDD 57
3.2.1 从对象集合创建RDD 57
3.2.2 从外部存储创建RDD 57
3.3 RDD的算子 58
3.3.1 转化算子 58
3.3.2 行动算子 65
3.4 RDD的分区 66
3.4.1 分区数量 66
3.4.2 自定义分区器 74
3.5 RDD的依赖 79
3.5.1 窄依赖 79
3.5.2 宽依赖 79
3.5.3 Stage划分 80
3.6 RDD的持久化 81
3.6.1 存储级别 82
3.6.2 查看缓存 84
3.7 RDD的检查点 86
3.8 共享变量 87
3.8.1 广播变量 87
3.8.2 累加器 89
3.9 案例分析:Spark RDD实现单词计数 90
3.9.1 新建Maven管理的Spark项目 90
3.9.2 编写WordCount程序 92
3.9.3 提交程序到集群 94
3.10 案例分析:Spark RDD实现分组求TopN 96
3.11 案例分析:Spark RDD实现二次排序 100
3.12 案例分析:Spark RDD计算成绩平均分 103
3.13 案例分析:Spark RDD倒排索引统计 每日新增用户 105
3.14 案例分析:Spark RDD读写HBase 109
3.14.1 读取HBase表数据 109
3.14.2 写入HBase表数据 111
3.15 案例分析:Spark RDD数据倾斜问题的解决 119
3.15.1 数据倾斜的常用解决方法 120
3.15.2 使用随机key进行双重聚合 121
3.15.3 WebUI查看Spark历史作业 124
3.16 动手练习 125
第4章 Spark内核源码分析 127
4.1 Spark集群启动原理分析 127
4.2 Spark应用程序提交原理分析 136
4.3 Spark作业工作原理分析 146
4.3.1 MapReduce的工作原理 147
4.3.2 Spark作业的工作原理 149
4.4 Spark检查点原理分析 160
第5章 Spark SQL结构化数据处理引擎 164
5.1 什么是Spark SQL 164
5.2 DataFrame和Dataset 165
5.3 Spark SQL的基本使用 166
5.4 Spark SQL数据源 168
5.4.1 基本操作 168
5.4.2 Parquet文件 172
5.4.3 JSON数据集 175
5.4.4 Hive表 176
5.4.5 JDBC 178
5.5 Spark SQL内置函数 179
5.5.1 自定义函数 181
5.5.2 自定义聚合函数 182
5.5.3 开窗函数 184
5.6 案例分析:使用Spark SQL实现单词计数 186
5.7 案例分析:Spark SQL与Hive的整合 191
5.7.1 整合Hive的步骤 191
5.7.2 操作Hive的几种方式 193
5.8 案例分析:Spark SQL读写MySQL 195
5.9 案例分析:Spark SQL每日UV统计 199
5.10 案例分析:Spark SQL热点搜索词统计 201
5.11 综合案例:Spark SQL智慧交通数据分析 204
5.11.1 项目介绍 204
5.11.2 数据准备 205
5.11.3 统计正常卡口数量 208
5.11.4 统计车流量排名前3的卡口号 208
5.11.5 统计车辆高速通过的卡口Top5 209
5.11.6 统计每个卡口通过速度最快的前3辆车 212
5.11.7 车辆轨迹分析 213
5.12 动手练习 214
第6章 Kafka分布式消息系统 215
6.1 什么是Kafka 215
6.2 Kafka架构 216
6.3 主题与分区 217
6.4 分区副本 218
6.5 消费者组 220
6.6 数据存储机制 221
6.7 集群环境搭建 223
6.8 命令行操作 225
6.8.1 创建主题 225
6.8.2 查询主题 225
6.8.3 创建生产者 226
6.8.4 创建消费者 227
6.9 Java API操作 227
6.9.1 创建Java工程 227
6.9.2 创建生产者 228
6.9.3 创建消费者 230
6.9.4 运行程序 231
6.10 案例分析:Kafka生产者拦截器 233
6.11 动手练习 239
第7章 Spark Streaming实时流处理引擎 240
7.1 什么是Spark Streaming 240
7.2 Spark Streaming工作原理 241
7.3 输入DStream和Receiver 242
7.4 第一个Spark Streaming程序 243
7.5 Spark Streaming数据源 244
7.5.1 基本数据源 244
7.5.2 高级数据源 246
7.5.3 自定义数据源 247
7.6 DStream操作 250
7.6.1 无状态操作 251
7.6.2 状态操作 252
7.6.3 窗口操作 253
7.6.4 输出操作 255
7.6.5 缓存及持久化 256
7.6.6 检查点 257
7.7 案例分析:Spark Streaming按批次累加单词数量 259
7.8 案例分析:Spark Streaming整合Kafka计算实时单词数量 262
7.9 案例分析:Spark Streaming实时用户日志黑名单过滤 268
7.10 综合案例:微博用户行为分析 271
7.11 动手练习 273
第8章 Structured Streaming结构化流处理引擎 274
8.1 什么是Structured Streaming 274
8.2 Structured Streaming单词计数 275
8.3 Structured Streaming编程模型 277
8.4 Structured Streaming查询输出 279
8.5 Structured Streaming窗口操作 282
8.5.1 事件时间 282
8.5.2 窗口聚合单词计数 283
8.5.3 延迟数据和水印 286
8.6 案例分析:Structured Streaming整合Kafka实现单词计数 290
8.7 动手练习 293
第9章 GraphX图计算引擎 294
9.1 什么是GraphX 294
9.2 第一个GraphX程序 295
9.3 GraphX数据结构 298
9.4 GraphX图操作 298
9.4.1 基本操作 298
9.4.2 属性操作 301
9.4.3 结构操作 302
9.4.4 连接操作 304
9.4.5 聚合操作 307
9.5 案例分析:使用GraphX计算社交网络中粉丝的平均年龄 308
9.6 动手练习 310
1.1 什么是Scala 1
1.2 安装Scala 1
1.2.1 在Windows中安装Scala 2
1.2.2 在CentOS 7中安装Scala 3
1.3 Scala基础 3
1.3.1 变量声明 4
1.3.2 数据类型 5
1.3.3 表达式 6
1.3.4 循环 7
1.3.5 方法与函数 9
1.4 集合 12
1.4.1 数组 12
1.4.2 List 14
1.4.3 Map映射 15
1.4.4 元组 17
1.4.5 Set 18
1.5 类和对象 19
1.5.1 类的定义 19
1.5.2 单例对象 20
1.5.3 伴生对象 20
1.5.4 get和set方法 20
1.5.5 构造器 23
1.6 抽象类和特质 25
1.6.1 抽象类 25
1.6.2 特质 26
1.7 使用Eclipse创建Scala项目 28
1.7.1 安装Scala for Eclipse IDE 28
1.7.2 创建Scala项目 29
1.8 使用IntelliJ IDEA创建Scala项目 29
1.8.1 在IDEA中安装Scala插件 30
1.8.2 创建Scala项目 31
1.9 动手练习 32
第2章 初识Spark 33
2.1 大数据开发的总体架构 33
2.2 什么是Spark 34
2.3 Spark的主要组件 35
2.4 Spark运行架构 37
2.4.1 YARN集群架构 37
2.4.2 Spark Standalone架构 40
2.4.3 Spark On YARN架构 42
2.5 Spark集群搭建与测试 44
2.5.1 Spark Standalone模式的集群搭建 44
2.5.2 Spark On YARN模式的集群搭建 46
2.5.3 Spark HA的搭建 47
2.6 Spark应用程序的提交 51
2.7 Spark Shell的使用 53
2.8 动手练习 55
第3章 Spark RDD弹性分布式数据集 56
3.1 什么是RDD 56
3.2 创建RDD 57
3.2.1 从对象集合创建RDD 57
3.2.2 从外部存储创建RDD 57
3.3 RDD的算子 58
3.3.1 转化算子 58
3.3.2 行动算子 65
3.4 RDD的分区 66
3.4.1 分区数量 66
3.4.2 自定义分区器 74
3.5 RDD的依赖 79
3.5.1 窄依赖 79
3.5.2 宽依赖 79
3.5.3 Stage划分 80
3.6 RDD的持久化 81
3.6.1 存储级别 82
3.6.2 查看缓存 84
3.7 RDD的检查点 86
3.8 共享变量 87
3.8.1 广播变量 87
3.8.2 累加器 89
3.9 案例分析:Spark RDD实现单词计数 90
3.9.1 新建Maven管理的Spark项目 90
3.9.2 编写WordCount程序 92
3.9.3 提交程序到集群 94
3.10 案例分析:Spark RDD实现分组求TopN 96
3.11 案例分析:Spark RDD实现二次排序 100
3.12 案例分析:Spark RDD计算成绩平均分 103
3.13 案例分析:Spark RDD倒排索引统计 每日新增用户 105
3.14 案例分析:Spark RDD读写HBase 109
3.14.1 读取HBase表数据 109
3.14.2 写入HBase表数据 111
3.15 案例分析:Spark RDD数据倾斜问题的解决 119
3.15.1 数据倾斜的常用解决方法 120
3.15.2 使用随机key进行双重聚合 121
3.15.3 WebUI查看Spark历史作业 124
3.16 动手练习 125
第4章 Spark内核源码分析 127
4.1 Spark集群启动原理分析 127
4.2 Spark应用程序提交原理分析 136
4.3 Spark作业工作原理分析 146
4.3.1 MapReduce的工作原理 147
4.3.2 Spark作业的工作原理 149
4.4 Spark检查点原理分析 160
第5章 Spark SQL结构化数据处理引擎 164
5.1 什么是Spark SQL 164
5.2 DataFrame和Dataset 165
5.3 Spark SQL的基本使用 166
5.4 Spark SQL数据源 168
5.4.1 基本操作 168
5.4.2 Parquet文件 172
5.4.3 JSON数据集 175
5.4.4 Hive表 176
5.4.5 JDBC 178
5.5 Spark SQL内置函数 179
5.5.1 自定义函数 181
5.5.2 自定义聚合函数 182
5.5.3 开窗函数 184
5.6 案例分析:使用Spark SQL实现单词计数 186
5.7 案例分析:Spark SQL与Hive的整合 191
5.7.1 整合Hive的步骤 191
5.7.2 操作Hive的几种方式 193
5.8 案例分析:Spark SQL读写MySQL 195
5.9 案例分析:Spark SQL每日UV统计 199
5.10 案例分析:Spark SQL热点搜索词统计 201
5.11 综合案例:Spark SQL智慧交通数据分析 204
5.11.1 项目介绍 204
5.11.2 数据准备 205
5.11.3 统计正常卡口数量 208
5.11.4 统计车流量排名前3的卡口号 208
5.11.5 统计车辆高速通过的卡口Top5 209
5.11.6 统计每个卡口通过速度最快的前3辆车 212
5.11.7 车辆轨迹分析 213
5.12 动手练习 214
第6章 Kafka分布式消息系统 215
6.1 什么是Kafka 215
6.2 Kafka架构 216
6.3 主题与分区 217
6.4 分区副本 218
6.5 消费者组 220
6.6 数据存储机制 221
6.7 集群环境搭建 223
6.8 命令行操作 225
6.8.1 创建主题 225
6.8.2 查询主题 225
6.8.3 创建生产者 226
6.8.4 创建消费者 227
6.9 Java API操作 227
6.9.1 创建Java工程 227
6.9.2 创建生产者 228
6.9.3 创建消费者 230
6.9.4 运行程序 231
6.10 案例分析:Kafka生产者拦截器 233
6.11 动手练习 239
第7章 Spark Streaming实时流处理引擎 240
7.1 什么是Spark Streaming 240
7.2 Spark Streaming工作原理 241
7.3 输入DStream和Receiver 242
7.4 第一个Spark Streaming程序 243
7.5 Spark Streaming数据源 244
7.5.1 基本数据源 244
7.5.2 高级数据源 246
7.5.3 自定义数据源 247
7.6 DStream操作 250
7.6.1 无状态操作 251
7.6.2 状态操作 252
7.6.3 窗口操作 253
7.6.4 输出操作 255
7.6.5 缓存及持久化 256
7.6.6 检查点 257
7.7 案例分析:Spark Streaming按批次累加单词数量 259
7.8 案例分析:Spark Streaming整合Kafka计算实时单词数量 262
7.9 案例分析:Spark Streaming实时用户日志黑名单过滤 268
7.10 综合案例:微博用户行为分析 271
7.11 动手练习 273
第8章 Structured Streaming结构化流处理引擎 274
8.1 什么是Structured Streaming 274
8.2 Structured Streaming单词计数 275
8.3 Structured Streaming编程模型 277
8.4 Structured Streaming查询输出 279
8.5 Structured Streaming窗口操作 282
8.5.1 事件时间 282
8.5.2 窗口聚合单词计数 283
8.5.3 延迟数据和水印 286
8.6 案例分析:Structured Streaming整合Kafka实现单词计数 290
8.7 动手练习 293
第9章 GraphX图计算引擎 294
9.1 什么是GraphX 294
9.2 第一个GraphX程序 295
9.3 GraphX数据结构 298
9.4 GraphX图操作 298
9.4.1 基本操作 298
9.4.2 属性操作 301
9.4.3 结构操作 302
9.4.4 连接操作 304
9.4.5 聚合操作 307
9.5 案例分析:使用GraphX计算社交网络中粉丝的平均年龄 308
9.6 动手练习 310
猜您喜欢