前言
基础篇
第1章Spark简介2
1.1什么是Spark2
1.1.1概述3
1.1.2Spark大数据处理框架3
1.1.3Spark的特点4
1.1.4Spark应用场景5
1.2Spark的重要扩展6
1.2.1SparkSQL和DataFrame6
1.2.2SparkStreaming7
1.2.3SparkMLlib和ML8
1.2.4GraphX8
1.2.5SparkR9
1.3本章小结10
第2章Spark部署和运行11
2.1部署准备11
2.1.1下载Spark11
2.1.2编译Spark版本12
2.1.3集群部署概述14
2.2Spark部署15
2.2.1Local模式部署16
2.2.2Standalone模式部署16
2.2.3YARN模式部署18
2.3运行Spark应用程序19
2.3.1Local模式运行Spark应用程序19
2.3.2Standalone模式运行Spark应用程序20
2.3.3YARN模式运行Spark22
2.3.4应用程序提交和参数传递23
2.4本章小结26
第3章Spark程序开发27
3.1使用SparkShell编写程序27
3.1.1启动SparkShell28
3.1.2加载text文件28
3.1.3简单RDD操作28
3.1.4简单RDD操作应用29
3.1.5RDD缓存30
3.2构建Spark的开发环境30
3.2.1准备环境30
3.2.2构建Spark的Eclipse开发环境31
3.2.3构建Spark的IntelliJIDEA开发环境32
3.3独立应用程序编程40
3.3.1创建SparkContext对象40
3.3.2编写简单应用程序40
3.3.3编译并提交应用程序40
3.4本章小结43
第4章编程模型44
4.1RDD介绍44
4.1.1RDD特征45
4.1.2RDD依赖45
4.2创建RDD47
4.2.1集合(数组)创建RDD47
4.2.2存储创建RDD48
4.3RDD操作49
4.3.1转换操作50
4.3.2执行操作52
4.3.3控制操作54
4.4共享变量56
4.4.1广播变量57
4.4.2累加器57
4.5本章小结58
第5章作业执行解析59
5.1基本概念59
5.1.1Spark组件59
5.1.2RDD视图60
5.1.3DAG图61
5.2作业执行流程62
5.2.1基于Standalone模式的Spark架构62
5.2.2基于YARN模式的Spark架构64
5.2.3作业事件流和调度分析65
5.3运行时环境67
5.3.1构建应用程序运行时环境68
5.3.2应用程序转换成DAG68
5.3.3调度执行DAG图70
5.4应用程序运行实例71
5.5本章小结72
第6章SparkSQL与DataFrame73
6.1概述73
6.1.1SparkSQL发展74
6.1.2SparkSQL架构74
6.1.3SparkSQL特点76
6.1.4SparkSQL性能76
6.2DataFrame77
6.2.1DataFrame和RDD的区别78
6.2.2创建DataFrame78
6.2.3DataFrame操作80
6.2.4RDD转化为DataFrame82
6.3数据源84
6.3.1加载保存操作84
6.3.2Parquet文件85
6.3.3JSON数据集88
6.3.4Hive表89
6.3.5通过JDBC连接数据库91
6.3.6多数据源整合查询的小例子92
6.4分布式的SQLEngine93
6.4.1运行ThriftJDBC/ODBC服务93
6.4.2运行SparkSQLCLI94
6.5性能调优94
6.5.1缓存数据94
6.5.2调优参数94
6.5.3增加并行度95
6.6数据类型95
6.7本章小结96
第7章深入了解SparkStreaming97
7.1基础知识97
7.1.1SparkStreaming工作原理98
7.1.2DStream编程模型99
7.2DStream操作100
7.2.1InputDStream100
7.2.2DStream转换操作102
7.2.3DStream状态操作104
7.2.4DStream输出操作106
7.2.5缓存及持久化107
7.2.6检查点108
7.3性能调优109
7.3.1优化运行时间109
7.3.2设置合适的批次大小111
7.3.3优化内存使用111
7.4容错处理112
7.4.1文件输入源112
7.4.2基于Receiver的输入源112
7.4.3输出操作113
7.5一个例子113
7.6本章小结115
第8章SparkMLlib与机器学习116
8.1机器学习概述116
8.1.1机器学习分类117
8.1.2机器学习算法117
8.2SparkMLlib介绍118
8.3SparkMLlib库119
8.3.1MLlib数据类型120
8.3.2MLlib的算法库与实例123
8.4ML库142
8.4.1主要概念143
8.4.2算法库与实例145
8.5本章小结147
第9章GraphX图计算框架与应用148
9.1概述148
9.2SparkGraphX架构149
9.3GraphX编程150
9.3.1GraphX的图操作152
9.3.2常用图算法161
9.4应用场景164
9.4.1图谱体检平台164
9.4.2多图合并工具165
9.4.3能量传播模型165
9.5本章小结166
第10章SparkR(RonSpark)167
10.1概述167
10.1.1SparkR介绍168
10.1.2SparkR的工作原理168
10.1.3R语言介绍169
10.1.4R语言与其他语言的通信170
10.2安装SparkR170
10.2.1安装R语言与rJava171
10.2.2SparkR的安装171
10.3SparkR的运行与应用示例172
10.3.1运行SparkR172
10.3.2SparkR示例程序173
10.3.3R的DataFrame操作方法175
10.3.4SparkR的DataFrame183
10.4本章小结186
实战篇
第11章大数据分析系统188
11.1背景188
11.2数据格式189
11.3应用架构189
11.4业务实现190
11.4.1流量、性能的实时分析190
11.4.2流量、性能的统计分析192
11.4.3业务关联分析193
11.4.4离线报表分析195
11.5本章小结199
第12章系统资源分析平台200
12.1业务背景200
12.1.1业务介绍201
12.1.2实现目标201
12.2应用架构201
12.2.1总体架构202
12.2.2模块架构202
12.3代码实现203
12.3.1Kafka集群203
12.3.2数据采集207
12.3.3离线数据处理207
12.3.4数据表现207
12.4结果验证213
12.5本章小结214
第13章在Spark上训练LR模型215
13.1逻辑回归简介215
13.2数据格式216
13.3MLlib中LR模型源码介绍217
13.3.1逻辑回归分类器217
13.3.2优化方法219
13.3.3算法效果评估221
13.4实现案例223
13.4.1训练模型223
13.4.2计算AUC223
13.5本章小结224
第14章获取二级邻居关系图225
14.1理解PageRank225
14.1.1初步理解PageRank225
14.1.2深入理解PageRank227
14.2PageRank算法基于Spark的实现228
14.3基于PageRank的二级邻居获取232
14.3.1系统设计232
14.3.2系统实现232
14.3.3代码提交命令235
14.4本章小结236
高级篇
第15章调度管理238
15.1调度概述238
15.1.1应用程序间的调度239
15.1.2应用程序中的调度241
15.2调度器242
15.2.1调度池243
15.2.2Job调度流程243
15.2.3调度模块245
15.2.4Job的生与死249
15.3本章小结253
第16章存储管理254
16.1硬件环境254
16.1.1存储系统254
16.1.2本地磁盘255
16.1.3内存255
16.1.4网络和CPU255
16.2Storage模块256
16.2.1通信层256
16.2.2存储层258
16.3Shuffle数据持久化261
16.4本章小结263
第17章监控管理264
17.1Web界面264
17.2SparkUI历史监控266
17.2.1使用spark—server的原因266
17.2.2配置spark—server266
17.3监控工具269
17.3.1Metrics工具269
17.3.2其他工具271
17.4本章小结272
第18章性能调优273
18.1文件的优化273
18.1.1输入采用大文件273
18.1.2lzo压缩处理274
18.1.3Cache压缩275
18.2序列化数据277
18.3缓存278
18.4共享变量278
18.4.1广播变量279
18.4.2累加器279
18.5流水线优化280
18.6本章小结280
扩展篇
第19章Spark—jobserver实践282
19.1Spark—jobserver是什么282
19.2编译、部署及体验283
19.2.1编译及部署283
19.2.2体验286
19.3Spark—jobserver程序实战288
19.3.1创建步骤288
19.3.2一些常见的问题289
19.4使用场景:用户属性分布计算289
19.4.1项目需求290
19.4.2计算架构290
19.4.3使用NamedRDD291
19.5本章小结291
第20章SparkTachyon实战292
20.1Tachyon文件系统292
20.1.1文件系统概述293
20.1.2HDFS和Tachyon294
20.1.3Tachyon设计原理294
20.1.4Tachyon特性295
20.2Tachyon入门295
20.2.1Tachyon部署295
20.2.2TachyonAPI297
20.2.3在Spark上使用Tachyon298
20.3容错机制299
20.4本章小结300
· · · · · · (
收起)