《Spark大数据处理:技术、应用与性能优化》【PDF】
内容简介
《Spark大数据处理:技术、应用与性能优化》根据最新技术版本,系统、全面、详细讲解Spark的各项功能使用、原理机制、技术细节、应用方法、性能优化,以及BDAS生态系统的相关技术。
作为一个基于内存计算的大数据并行计算框架,Spark不仅很好地解决了数据的实时处理问题,而且保证了高容错性和高可伸缩性。具体来讲,它有如下优势:
打造全栈多计算范式的高效数据流水线
轻量级快速处理
易于使用,支持多语言
与HDFS等存储层兼容
社区活跃度高
……
Spark已经在全球范围内广泛使用,无论是Intel、Yahoo!、Twitter、阿里巴巴、百度、腾讯等国际互联网巨头,还是一些尚处于成长期的小公司,都在使用Spark。本书作者结合自己在微软和IBM实践Spark的经历和经验,编写了这本书。站着初学者的角度,不仅系统、全面地讲解了Spark的各项功能及其使用方法,而且较深入地探讨了Spark的工作机制、运行原理以及BDAS生态系统中的其他技术,同时还有一些可供操作的案例,能让没有经验的读者迅速掌握Spark。更为重要的是,本书还对Spark的性能优化进行了探讨。
作者简介
高彦杰
毕业于中国人民大学,就职于IBM,精通Hadoop相关技术,较早接触并使用Spark,对Spark应用开发、Spark系统的运维和测试比较熟悉,深度阅读了Spark的源代码,了解Spark的运行机制,擅长Spark的查询优化。
目录
前 言
第1章 Spark简介
1
1.1 Spark是什么
1
1.2 Spark生态系统BDAS
4
1.3 Spark架构
6
1.4 Spark分布式架构与单机多核架构的异同
9
1.5 Spark的企业级应用
10
1.5.1 Spark在Amazon中的应用
11
1.5.2 Spark在Yahoo!的应用
15
1.5.3 Spark在西班牙电信的应用
17
1.5.4 Spark在淘宝的应用
18
1.6 本章小结
20
第2章 Spark集群的安装与部署
21
2.1 Spark的安装与部署
21
2.1.1 在Linux集群上安装与配置Spark
21
2.1.2 在Windows上安装与配置Spark
30
2.2 Spark集群初试
33
2.3 本章小结
35
第3章 Spark计算模型
36
3.1 Spark程序模型
36
3.2 弹性分布式数据集
37
3.2.1 RDD简介
38
3.2.2 RDD与分布式共享内存的异同
38
3.2.3 Spark的数据存储
39
3.3 Spark算子分类及功能
41
3.3.1 Value型Transformation算子
42
3.3.2 Key-Value型Transformation算子
49
3.3.3 Actions算子
53
3.4 本章小结
59
第4章 Spark工作机制详解
60
4.1 Spark应用执行机制
60
4.1.1 Spark执行机制总览
60
4.1.2 Spark应用的概念
62
4.1.3 应用提交与执行方式
63
4.2 Spark调度与任务分配模块
65
4.2.1 Spark应用程序之间的调度
66
4.2.2 Spark应用程序内Job的调度
67
4.2.3 Stage和TaskSetManager调度方式
72
4.2.4 Task调度
74
4.3 Spark
I/O机制 77
4.3.1 序列化
77
4.3.2 压缩
78
4.3.3 Spark块管理
80
4.4 Spark通信模块
93
4.4.1 通信框架AKKA
94
4.4.2 Client、Master和Worker间的通信
95
4.5 容错机制
104
4.5.1 Lineage机制
104
4.5.2 Checkpoint机制
108
4.6 Shuffle机制
110
4.7 本章小结
119
第5章 Spark开发环境配置及流程
120
5.1 Spark应用开发环境配置
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.3 Spark编译
132
5.4 配置Spark源码阅读环境
135
5.5 本章小结
135
第6章 Spark编程实战
136
6.1 WordCount
136
6.2 Top
K 138
6.3 中位数
140
6.4 倒排索引
141
6.5 CountOnce
143
6.6 倾斜连接
144
6.7 股票趋势预测
146
6.8 本章小结
153
第7章 Benchmark使用详解
154
7.1 Benchmark简介
154
7.1.1 Intel
Hibench与Berkeley
BigDataBench 155
7.1.2 Hadoop
GridMix 157
7.1.3 Bigbench、BigDataBenchmark与TPC-DS
158
7.1.4 其他Benchmark
161
7.2 Benchmark的组成
162
7.2.1 数据集
162
7.2.2 工作负载
163
7.2.3 度量指标
167
7.3 Benchmark的使用
168
7.3.1 使用Hibench
168
7.3.2 使用TPC-DS
170
7.3.3 使用BigDataBench
172
7.4 本章小结
176
第8章 BDAS简介
177
8.1 SQL
on Spark 177
8.1.1 使用Spark
SQL的原因 178
8.1.2 Spark
SQL架构分析 179
8.1.3 Shark简介
182
8.1.4 Hive
on Spark 184
8.1.5 未来展望
185
8.2 Spark
Streaming 185
8.2.1 Spark
Streaming简介 186
8.2.2 Spark
Streaming架构 188
8.2.3 Spark
Streaming原理剖析 189
8.2.4 Spark
Streaming调优 198
8.2.5 Spark
Streaming 实例 198
8.3 GraphX
205
8.3.1 GraphX简介
205
8.3.2 GraphX的使用
206
8.3.3 GraphX架构
209
8.3.4 运行实例
211
8.4 MLlib
215
8.4.1 MLlib简介
217
8.4.2 MLlib的数据存储
219
8.4.3 数据转换为向量(向量空间模型VSM)
222
8.4.4 MLlib中的聚类和分类
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
《Spark大数据处理:技术、应用与性能优化》【PDF】下载链接: https://u253469.pipipan.com/fs/253469-230062536
《Spark大数据处理:技术、应用与性能优化》【PDF】的更多相关文章
- 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现
[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...
- 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现
[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...
- 【实战Java高并发程序设计 5】让普通变量也享受原子操作
[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...
- 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray
除了提供基本数据类型外,JDK还为我们准备了数组等复合结构.当前可用的原子数组有:AtomicIntegerArray.AtomicLongArray和AtomicReferenceArray,分别表 ...
- 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference
[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference AtomicReference无法解决上述问题的根 ...
- 【实战Java高并发程序设计 1】Java中的指针:Unsafe类
是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...
- 《实战java高并发程序设计》源码整理及读书笔记
日常啰嗦 不要被标题吓到,虽然书籍是<实战java高并发程序设计>,但是这篇文章不会讲高并发.线程安全.锁啊这些比较恼人的知识点,甚至都不会谈相关的技术,只是写一写本人的一点读书感受,顺便 ...
- 《实战Java高并发程序设计》读书笔记
文章目录 第二章 Java并行程序基础 2.1 线程的基本操作 2.1.1 线程中断 2.1.2 等待(wait)和通知(notify) 2.1.3 等待线程结束(join)和谦让(yield) 2. ...
- 《实战Java高并发程序设计》读书笔记三
第三章 JDK并发包 1.同步控制 重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁. 重入锁和synchro ...
- 《实战Java高并发程序设计》读书笔记二
第二章 Java并行程序基础 1.线程的基本操作 线程:进程是线程的容器,线程是轻量级进程,是程序执行的最小单位,使用多线程而不用多进程去进行并发程序设计是因为线程间的切换和调度的成本远远的小于进程 ...
随机推荐
- Django之用户登录实例
1,django目录结构(需要用到的文件用红箭头标记): 2,首先在templates模版目录下创建login.html文件 3,将bootstrap导入到static/plugins目录下 PS ...
- JavaScript 系统知识点图库
JavaScript 是世界上最流行的,轻量级的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备: JavaScript 被数百万计的网 ...
- TensorFlow简易学习[2]:实现线性回归
上篇介绍了TensorFlow基本概念和基本操作,本文将利用TensorFlow举例实现线性回归模型过程. 线性回归算法 线性回归算法是机器学习中典型监督学习算法,不同于分类算法,线性回归的输出是整个 ...
- Unity3D游戏GC优化总结---protobuf-net无GC版本优化实践
protobuf-net优化效果图 protobuf-net是Unity3D游戏开发中被广泛使用的Google Protocol Buffer库的c#版本,之所以c#版本被广泛使用,是因为c++版本的 ...
- dSYM文件分析
什么是 dSYM 文件 Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编 ...
- 实战-Mysql5.6.36脚本编译安装及初始化
概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本. 安装脚本install.py如下: #coding=utf-8 #!/usr/bin/p ...
- FreeRTOS--疑难解答
此章节涉及新手最常遇见的3种问题: 错误的中断优先级设置 栈溢出 不恰当的使用printf() 使用configASSERT()能够显著地提高生产效率,它能够捕获.识别多种类型的错误.强烈建议在开发或 ...
- Mac下CUDA开启及Tensorflow-gpu安装
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/8040694.html 在之前的文章中,笔者介绍了在Mac下安装Tensorfl ...
- List<Object>中,以Object的某一属性值为参照进行排序,选取最大记录的解决办法
一.场景:java web, 在一列表中选取一条记录,该记录的某一个属性值在此List中为最大值: List的格式为List<Object>,其中Object为定义的Vo或者Po类,其中包 ...
- Windows 服务多语言化时读取配置文件失败的问题。
在Installer中,按一般读取配置文件的方法(ConfigurationManager.AppSettings["CultureName"])读取不到内容. 可以这样读取: v ...