Spark大数据处理:技术、应用与性能优化
作者:高彦杰 著
出版时间:2014年版
丛编项: 大数据技术丛书
作为一个基于内存计算的大数据并行计算框架,Spark不仅很好地解决了数据的实时处理问题,而且保证了高容错性和高可伸缩性。具体来讲,它有如下优势:打造全栈多计算范式的高效数据流水线轻量级快速处理易于使用,支持多语言与HDFS等存储层兼容社区活跃度高……Spark已经在全球范围内广泛使用,无论是Intel、Yahoo!、Twitter、阿里巴巴、百度、腾讯等国际互联网巨头,还是一些尚处于成长期的小公司,都在使用Spark。本书作者结合自己在微软和IBM实践Spark的经历和经验,编写了这本书。站着初学者的角度,不仅系统、全面地讲解了Spark的各项功能及其使用方法,而且较深入地探讨了Spark的工作机制、运行原理以及BDAS生态系统中的其他技术,同时还有一些可供操作的案例,能让没有经验的读者迅速掌握Spark。更为重要的是,本书还对Spark的性能优化进行了探讨。
目录
- 前言
- 第1章Spark简介 1
- 1.1Spark是什么 1
- 1.2Spark生态系统BDAS 4
- 1.3Spark架构 6
- 1.4Spark分布式架构与单机多核
- 架构的异同 9
- 1.5Spark的企业级应用 10
- 1.5.1Spark在Amazon中的应用 11
- 1.5.2Spark在Yahoo!的应用 15
- 1.5.3Spark在西班牙电信的应用 17
- 1.5.4Spark在淘宝的应用 18
- 1.6本章小结 20
- 第2章Spark集群的安装与部署 21
- 2.1Spark的安装与部署 21
- 2.1.1在Linux集群上安装与配置Spark 21
- 2.1.2在Windows上安装与配置Spark 30
- 2.2Spark集群初试 33
- 2.3本章小结 35
- 第3章Spark计算模型 36
- 3.1Spark程序模型 36
- 3.2弹性分布式数据集 37
- 3.2.1RDD简介 38
- 3.2.2RDD与分布式共享内存的异同 38
- 3.2.3Spark的数据存储 39
- 3.3Spark算子分类及功能 41
- 3.3.1Value型Transformation算子 42
- 3.3.2Key-Value型Transformation算子 49
- 3.3.3Actions算子 53
- 3.4本章小结 59
- 第4章Spark工作机制详解 60
- 4.1Spark应用执行机制 60
- 4.1.1Spark执行机制总览 60
- 4.1.2Spark应用的概念 62
- 4.1.3应用提交与执行方式 63
- 4.2Spark调度与任务分配模块 65
- 4.2.1Spark应用程序之间的调度 66
- 4.2.2Spark应用程序内Job的调度 67
- 4.2.3Stage和TaskSetManager调度方式 72
- 4.2.4Task调度 74
- 4.3Spark I/O机制 77
- 4.3.1序列化 77
- 4.3.2压缩 78
- 4.3.3Spark块管理 80
- 4.4Spark通信模块 93
- 4.4.1通信框架AKKA 94
- 4.4.2Client、Master和Worker间的通信 95
- 4.5容错机制 104
- 4.5.1Lineage机制 104
- 4.5.2Checkpoint机制 108
- 4.6Shuffle机制 110
- 4.7本章小结 119
- 第5章Spark开发环境配置及流程 120
- 5.1Spark应用开发环境配置 120
- 5.1.1使用Intellij开发Spark程序 120
- 5.1.2使用Eclipse开发Spark程序 125
- 5.1.3使用SBT构建Spark程序 129
- 5.1.4使用Spark Shell开发运行Spark程序 130
- 5.2远程调试Spark程序 130
- 5.3Spark编译 132
- 5.4配置Spark源码阅读环境 135
- 5.5本章小结 135
- 第6章Spark编程实战 136
- 6.1WordCount 136
- 6.2Top K 138
- 6.3中位数 140
- 6.4倒排索引 141
- 6.5CountOnce 143
- 6.6倾斜连接 144
- 6.7股票趋势预测 146
- 6.8本章小结 153
- 第7章Benchmark使用详解 154
- 7.1Benchmark简介 154
- 7.1.1Intel Hibench与Berkeley BigDataBench 155
- 7.1.2Hadoop GridMix 157
- 7.1.3Bigbench、BigDataBenchmark与TPC-DS 158
- 7.1.4其他Benchmark 161
- 7.2Benchmark的组成 162
- 7.2.1数据集 162
- 7.2.2工作负载 163
- 7.2.3度量指标 167
- 7.3Benchmark的使用 168
- 7.3.1使用Hibench 168
- 7.3.2使用TPC-DS 170
- 7.3.3使用BigDataBench 172
- 7.4本章小结 176
- 第8章BDAS简介 177
- 8.1SQL on Spark 177
- 8.1.1使用Spark SQL的原因 178
- 8.1.2Spark SQL架构分析 179
- 8.1.3Shark简介 182
- 8.1.4Hive on Spark 184
- 8.1.5未来展望 185
- 8.2Spark Streaming 185
- 8.2.1Spark Streaming简介 186
- 8.2.2Spark Streaming架构 188
- 8.2.3Spark Streaming原理剖析 189
- 8.2.4Spark Streaming调优 198
- 8.2.5Spark Streaming 实例 198
- 8.3GraphX 205
- 8.3.1GraphX简介 205
- 8.3.2GraphX的使用 206
- 8.3.3GraphX架构 209
- 8.3.4运行实例 211
- 8.4MLlib 215
- 8.4.1MLlib简介 217
- 8.4.2MLlib的数据存储 219
- 8.4.3数据转换为向量(向量空间模型VSM) 222
- 8.4.4MLlib中的聚类和分类 223
- 8.4.5算法应用实例 228
- 8.4.6利用MLlib进行电影推荐 230
- 8.5本章小结 237
- 第9章Spark性能调优 238
- 9.1配置参数 238
- 9.2调优技巧 239
- 9.2.1调度与分区优化 240
- 9.2.2内存存储优化 243
- 9.2.3网络传输优化 249
- 9.2.4序列化与压缩 251
- 9.2.5其他优化方法 253
- 9.3本章小结 255