图书介绍
SPARK大数据分析 源码解析与实例详解PDF|Epub|txt|kindle电子书版本网盘下载
![SPARK大数据分析 源码解析与实例详解](https://www.shukui.net/cover/34/32468244.jpg)
- 刘景泽编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121370519
- 出版时间:2019
- 标注页数:422页
- 文件大小:142MB
- 文件页数:438页
- 主题词:数据处理软件
PDF下载
下载说明
SPARK大数据分析 源码解析与实例详解PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 准备2
第1章 认识大数据和Spark2
1.1 大数据的介绍2
1.2 Apache Spark能做什么3
1.3 其他分布式数据处理框架4
1.4 如何使用本书4
1.4.1 需要提前具备的基础4
1.4.2 准备相关开发环境4
1.4.3 如何学习本书5
第2章 安装与配置Spark集群6
2.1 下载Spark安装包6
2.2 检查与准备集群环境7
2.3 了解目前集群中已经部署的框架服务11
2.4 部署Spark集群12
2.4.1 实例1:基于Standalone模式部署Spark集群12
2.4.2 实例2:部署Spark的历史服务——Spark History Server16
2.4.3 实例3:基于Standalone模式部署高可用的Master服务18
2.4.4 实例4:基于YARN模式部署Spark集群20
2.4.5 Standalone模式与YARN模式的特点22
2.5 本章小结23
第3章 第1个Spark程序24
3.1 运行第1个Spark程序24
3.1.1 实例5:基于Standalone模式运行第1个Spark程序24
3.1.2 实例6:基于YARN模式运行第1个Spark程序27
3.1.3 提交Spark程序时的参数规范30
3.2 使用spark-shell编写并运行WordCount程序30
3.2.1 实例7:启动spark-shell31
3.2.2 实例8:在spark-shell中编写WordCount程序32
3.3 使用IDEA编写并运行WordCount程序34
3.3.1 实例9:准备开发环境,并构建代码工程34
3.3.2 实例10:使用IDEA编写WordCount程序41
3.3.3 实例11:在IDEA中本地运行WordCount程序44
3.3.4 实例12:在IDEA中远程运行WordCount程序46
3.3.5 实例13:打包程序并提交至集群运行48
3.4 本章小结49
第2篇 入门52
第4章 读写分布式数据——基于Spark Core52
4.1 RDD的诞生52
4.2 进一步理解RDD53
4.2.1 数据存储53
4.2.2 数据分析55
4.2.3 程序调度56
4.3 读取数据并生成RDD57
4.3.1 实例14:读取普通文本数据58
4.3.2 实例15:读取JSON格式的数据59
4.3.3 实例16:读取CSV、TSV格式的数据61
4.3.4 实例17:读取SequenceFile格式的数据62
4.3.5 实例18:读取Object格式的数据64
4.3.6 实例19:读取HDFS中的数据——显式调用Hadoop API66
4.3.7 实例20:读取MySQL数据库中的数据68
4.4 保存RDD中的数据到外部存储系统70
4.4.1 实例21:保存成普通文本文件70
4.4.2 实例22:保存成JSON文件71
4.4.3 实例23:保存成CSV、TSV文件73
4.4.4 实例24:保存成SequenceFile文件74
4.4.5 实例25:保存成Object文件75
4.4.6 实例26:保存成HDFS文件——显式调用Hadoop API的方式76
4.4.7 实例27:写入MySQL数据库78
4.5 本章小结80
第5章 处理分布式数据——基于Spark Core81
5.1 RDD的转换(transformations)操作——转换数据形态81
5.1.1 实例28:基础转换操作81
5.1.2 实例29:键值对转换操作103
5.2 RDD的行动(actions)操作——触发执行任务计划115
5.2.1 实例30:基础行动操作116
5.2.2 实例31:键值对行动操作125
5.2.3 实例32:数值行动操作127
5.3 本章小结128
第3篇 进阶130
第6章 RDD的高级操作130
6.1 缓存RDD130
6.1.1 缓存RDD的基础知识130
6.1.2 实例33:缓存与释放RDD133
6.2 RDD的检查点(Checkpoint)机制139
6.2.1 了解Checkpoint机制139
6.2.2 实例34:使用Checkpoint机制141
6.2.3 Checkpoint机制的工作流程144
6.3 RDD的依赖关系145
6.3.1 窄依赖(narrow dependencies)145
6.3.2 宽依赖(wide/shuffle dependencies)148
6.3.3 实例35:让子RDD混合依赖多个父RDD151
6.3.4 实例36:词频统计——总结运算过程中涉及的概念153
6.4 累加器(Accumulator)155
6.4.1 认识累加器155
6.4.2 实例37:使用系统累加器1——长整数、双精度浮点数累加器156
6.4.3 实例38:使用系统累加器2——集合累加器159
6.4.4 实例39:自定义累加器160
6.5 广播(Broadcast)——将数据块缓存到所有节点164
6.5.1 认识广播165
6.5.2 实例40:使用广播补全数据165
6.6 本章小结168
第7章 用SQL语法分析结构化数据——基于Spark SQL169
7.1 为什么会产生Spark SQL169
7.2 认识DataFrame与Dataset数据类型170
7.2.1 认识DataFrame170
7.2.2 认识Dataset171
7.3 实例41:通过Dataset、DataFrame分析用户数据172
7.3.1 用spark-shell编写程序172
7.3.2 用IDEA编写程序175
7.4 不同Spark版本的操作差异177
7.4.1 认识SQLContext与HiveContext178
7.4.2 认识SparkSession178
7.5 DataFrame、Dataset的基本操作179
7.5.1 DSL与SQL的语法风格179
7.5.2 使用临时视图的注意事项181
7.5.3 实例42:读取JSON、CSV格式的数据183
7.5.4 实例43:读取Parquet格式的数据185
7.5.5 实例44:读取代码中动态生成的数据185
7.5.6 实例45:读取关系型数据库中的数据188
7.5.7 实例46:输出Dataset、DataFrame中的数据189
7.5.8 实例47:RDD、DataFrame、Dataset之间的相互转换192
7.6 用户自定义函数195
7.6.1 实例48:实现“一进一出”的UDF195
7.6.2 实例49:实现“多进一出”的UDAF198
7.6.3 实例50:实现“一进多出”的UDTF208
7.7 集成Spark SQL与Hive211
7.7.1 已经部署Hive框架211
7.7.2 尚未部署Hive框架215
7.8 本章小结215
第8章 实时处理流式数据——基于Spark Streaming216
8.1 为什么会产生Spark Streaming216
8.2 第1个Spark Streaming程序216
8.2.1 实例51:用spark-shell编写程序216
8.2.2 实例52:用IDEA编写程序221
8.3 什么是DStream222
8.3.1 认识DStream222
8.3.2 认识DStreamGraph223
8.4 读取数据到DStream中227
8.4.1 实例53:读取HDFS文件夹中的数据227
8.4.2 实例54:读取RDD组成的数据队列229
8.4.3 实例55:实时读取Flume中的数据230
8.4.4 实例56:用高阶API实时读取Kafka中的数据235
8.4.5 实例57:用低阶API实时读取Kafka中的数据242
8.5 Spark Streaming中的几个时间概念251
8.5.1 批处理间隔251
8.5.2 窗口时间宽度与滑动时间宽度252
8.5.3 实例58:使用窗口操作,每两秒统计10秒内的平均温度254
8.6 DStream的操作总结259
8.6.1 DStream的操作说明259
8.6.2 实例59:直接面向DStream中的RDD进行数据分析261
8.6.3 实例60:将DStream中的数据实时输出至外部存储系统263
8.6.4 实例61:对Dstream进行join操作267
8.7 DStream中的转换分类269
8.7.1 无状态转换269
8.7.2 有状态转换270
8.7.3 实例62:用有状态转换做全局词频统计270
8.8 在Spark Streaming中的缓存与Checkpoint272
8.8.1 认识Spark Streaming中的Checkpoint273
8.8.2 实例63:使用Spark Streaming中的Checkpoint273
8.9 Spark Streaming中的累加器与广播变量276
8.9.1 认识累加器与广播变量276
8.9.2 实例64:自定义累加器,并结合无状态转换,实现实时的全局词频统计276
8.10 关闭Spark Streaming程序280
8.10.1 关闭程序的方案281
8.10.2 合理关闭一个运行中的Spark Streaming程序281
8.11 本章小结284
第4篇 高阶286
第9章 实时处理流式数据——基于Structured Streaming286
9.1 为什么会产生Structured Streaming286
9.2 第1个Structured Streaming程序287
9.2.1 实例65:用spark-shell编写程序287
9.2.2 实例66:用IDEA编写程序289
9.3 Structured Streaming的编程模型291
9.4 输入数据——生成Streaming Dataset、Streaming DataFrame292
9.4.1 实例67:根据文件生成工作流292
9.4.2 实例68:根据文件、文件夹生成自动分区的工作流295
9.4.3 实例69:根据Kafka以Streaming模式生成工作流297
9.4.4 实例70:以Kafka为数据源,通过Batch模式生成工作流300
9.4.5 实例71:根据指定速率生成工作流304
9.5 基于事件时间的窗口操作305
9.5.1 事件时间窗口的工作方式305
9.5.2 实例72:事件时间窗口的生成规则307
9.5.3 实例73:基于事件时间窗口实现词频统计311
9.6 基于Watermark处理延迟数据314
9.6.1 Watermark的作用314
9.6.2 实例74:基于Update模式实现词频统计,并结合Watermark处理延迟数据314
9.6.3 实例75:基于Append模式实现词频统计,并结合Watermark处理延迟数据320
9.6.4 Watermark的底层工作原理322
9.6.5 总结:Watermark机制与输出模式329
9.7 实例76:在处理流式数据时去除重复数据330
9.8 Structured Streaming中的join操作332
9.8.1 实例77:在Stream-Static模式下的innerjoin操作333
9.8.2 实例78:在Stream-Stream模式下的inner join操作335
9.8.3 总结:已经支持的join操作340
9.9 在Structured Streaming中实现数据分组,并手动维护分组状态341
9.9.1 实例79:通过mapGroupsWithState实现数据分组,并手动维护分组状态341
9.9.2 实例80:通过flatMapGroupsWithState实现数据分组,并手动维护分组状态347
9.9.3 总结:手动维护状态与Watermark的使用技巧352
9.10 输出分析结果353
9.10.1 输出模式(Output Mode)的使用场景353
9.10.2 实例81:基于File Sink输出数据354
9.10.3 实例82:基于Kafka Sink,以Streaming方式输出数据356
9.10.4 实例83:基于Kafka Sink,以Batch方式输出数据358
9.10.5 实例84:基于Console Sink输出数据360
9.10.6 实例85:基于Memory Sink输出数据360
9.10.7 实例86:基于Foreach Sink输出数据362
9.10.8 实例87:基于ForeachBatch Sink输出数据367
9.10.9 总结:不同Sink所适用的输出模式369
9.11 Trigger触发器的分类370
9.12 管理与监控工作流370
9.12.1 管理工作流370
9.12.2 监控工作流372
9.13 Structured Streaming中的Checkpoint机制372
9.14 连续处理模式——Continuous Processing373
9.15 本章小结374
第10章 Spark的相关优化375
10.1 优化Spark程序375
10.1.1 实例88:尽可能减少或避免出现Shuffle过程375
10.1.2 实例89:使用Kryo作为序列化方案377
10.1.3 尽可能批量操作数据381
10.1.4 合理设置分区数381
10.1.5 合理设置批处理间隔381
10.2 优化数据382
10.2.1 关于数据倾斜382
10.2.2 实例90:使用自定义Partitioner缓解数据倾斜383
10.2.3 关于数据补全387
10.3 调优资源388
10.4 本章小结390
第5篇 商业项目实战392
第11章 实战:学生学习情况分析系统392
11.1 项目概述392
11.1.1 业务背景392
11.1.2 划分业务模块392
11.2 开发环境说明393
11.3 项目实现394
11.3.1 构建工程394
11.3.2 模拟数据395
11.3.3 实时发送数据到Kafka399
11.3.4 实时分析平台答题数据402
11.3.5 构建推荐模型405
11.3.6 实时推荐题目411
11.3.7 离线分析学习情况415
11.4 本章小结422