SPARK大数据分析 源码解析与实例详解PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:刘景泽编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2019
- ISBN:9787121370519
- 页数:422 页
第1篇 准备 2
第1章 认识大数据和Spark 2
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 Server 16
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-shell 31
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 Core 52
4.1 RDD的诞生 52
4.2 进一步理解RDD 53
4.2.1 数据存储 53
4.2.2 数据分析 55
4.2.3 程序调度 56
4.3 读取数据并生成RDD 57
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 API 66
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 Core 81
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 缓存RDD 130
6.1.1 缓存RDD的基础知识 130
6.1.2 实例33:缓存与释放RDD 133
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混合依赖多个父RDD 151
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 SQL 169
7.1 为什么会产生Spark SQL 169
7.2 认识DataFrame与Dataset数据类型 170
7.2.1 认识DataFrame 170
7.2.2 认识Dataset 171
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与HiveContext 178
7.4.2 认识SparkSession 178
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:实现“一进一出”的UDF 195
7.6.2 实例49:实现“多进一出”的UDAF 198
7.6.3 实例50:实现“一进多出”的UDTF 208
7.7 集成Spark SQL与Hive 211
7.7.1 已经部署Hive框架 211
7.7.2 尚未部署Hive框架 215
7.8 本章小结 215
第8章 实时处理流式数据——基于Spark Streaming 216
8.1 为什么会产生Spark Streaming 216
8.2 第1个Spark Streaming程序 216
8.2.1 实例51:用spark-shell编写程序 216
8.2.2 实例52:用IDEA编写程序 221
8.3 什么是DStream 222
8.3.1 认识DStream 222
8.3.2 认识DStreamGraph 223
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中的缓存与Checkpoint 272
8.8.1 认识Spark Streaming中的Checkpoint 273
8.8.2 实例63:使用Spark Streaming中的Checkpoint 273
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 Streaming 286
9.1 为什么会产生Structured Streaming 286
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 DataFrame 292
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 Processing 373
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 实时发送数据到Kafka 399
11.3.4 实时分析平台答题数据 402
11.3.5 构建推荐模型 405
11.3.6 实时推荐题目 411
11.3.7 离线分析学习情况 415
11.4 本章小结 422
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《分析化学》陈怀侠主编 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《高等数学试题与详解》西安电子科技大学高等数学教学团队 2019
- 《影响葡萄和葡萄酒中酚类特征的因素分析》朱磊 2019
- 《仪器分析技术 第2版》曹国庆 2018
- 《全国普通高等中医药院校药学类专业十三五规划教材 第二轮规划教材 分析化学实验 第2版》池玉梅 2018
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017