spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印

编辑点评:spark大数据处理技术应用与性能优化PDF版

这是一本依据*技术版本,系统、全面、详细讲解Spark的著作,作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成,系统、全面、详细讲解Spark的各项功能使用、原理机制、技术细节、应用方法、性能优化,以及BDAS生态系统的相关技术

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图

书籍相关内容部分预览

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(1)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(2)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(3)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(4)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(5)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(6)

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(7)

资料简介

这是一本依据*技术版本,系统、全面、详细讲解Spark的著作,作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成。

首先从技术层面讲解了Spark的体系结构、工作机制、安装与部署、开发环境搭建、计算模型、Benchmark、BDAS等内容;然后从应用角度讲解了一些简单的、

有代表性的案例;最后对Spark的性能优化进行了探讨。   这是一本依据*技术版本,系统、全面、详细讲解Spark的著作,

作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成。首先从技术层面讲解了Spark的体系结构、工作机制、安装与部署、

发环境搭建、计算模型、Benchmark、BDAS等内容;然后从应用角度讲解了一些简单的、有代表性的案例;最后对Spark的性能优化行了探讨。

spark使用范围

Spark已经在全球范围内广泛使用,无论是Intel、Yahoo!、Twitter、阿里巴巴、百度、腾讯等国际互联网巨头,还是一些尚处于成长期的小公司,都在使用Spark。

本书作者结合自己在微软和IBM实践Spark的经历和经验,编写了这本书。站着初学者的角度,不仅系统、全面地讲解了Spark的各项功能及其使用方法,

而且较深入地探讨了Spark的工作机制、运行原理以及BDAS生态系统中的其他技术,同时还有一些可供操作的案例,能让没有经验的读者迅速掌握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大数据统计计算的性能优化

正常的大数据计算中,肯定多多少少存在性能瓶颈或者性能优化的问题,主要有一下几种情况:

(1)通过设置spark提交参数,提大executor的数目或者executor-memory可以解决,这类问题属于第一类。

(2)数据量过大,即使修改提交参数,也会导致内存使用超出container的内存值,而kill掉的情况。

本文主要探讨第二种,第二种里面根据数据的分布情况又有如下几种情况,可以分开研究讨论:

2.1 根据key进行分组的时候,key数目不是很多,但是分组后相同key的数据量非常大。

2.2 本来key的数量就很多,即使分组,单个分组数据少,但是组过于多,(在分区没有调节之前)单个容器要处理的task也是非常多的。

针对2.1的问题: 主要是增加组,从而保证每组的数据减少,从而避免内存溢出。

伪代码如下,假设row的第一个值是作为聚合key使用:

dataRdd.map(x=>((new Random).nextInt(10) + "_" + row(0).asInstanceOf[String], x))//第一步给key增加一个随机数(增加数据的分组)

.reduceBykey((x:Row, y:Row)=>{…}) //进行第一次的聚合

.map(x=>(x._1.split("_")(1), x._2)) //去掉随机数前缀

.redubceBykey((x:Row, y:Row)=>{…}) //进行第二次聚合

针对2.2的数据情况,如果数据字段都是基本类型、string类型的话,建议采用reduceBykey而不要采用groupBykey(减少网络传输开销)。

如果存在复杂字段Array[Struct[]] 类似复杂组合类型字段的时候,进行reduceBykey时,往往行与行之间的转换存在困难,也只能采用groupByKey.

如何优化这类问题,目前只能通过增加聚合的分区数进行解决(当然你可以同时增加资源)

groupByKey(key, numPartions)

reduceByKey(key, numPartions)

通过增加numPartions 分区数,从而使得每个task处理分区的数据减少,避免内存溢出,超过container指定的大小。

备注:特别是使用spark-sql的项目,一定要注意sql的性能,不要引起全表扫描,这个也比较消耗内存。

如何查看是否引起全表扫描,可以查看sql的执行计划

在hive-shell的命令窗口中:

explain select * from xxx …;

通过查看行数就可以定义。

spark大数据处理技术应用与性能优化PDF版截图

spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(8)spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(9)spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(10)spark大数据处理技术应用与性能优化电子书下载-spark大数据处理技术应用与性能优化PDF版完整无水印插图(11)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments