![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据之spark
njyuxinag
这个作者很懒,什么都没留下…
展开
-
Spark性能优化点(一)
1.分配更多的资源 1.1.增加executor 1.2.增加每个executor的cpu core 增加executor的并行能力,一个cpu core运行一个task 1.3.增加每个executor的内存 1).如果需要对RDD进行cache,那么更多的内存,就可以缓存更多的数据,将更少的数据写入磁盘,甚至不写入磁盘。减少了 ...原创 2019-01-05 13:48:51 · 465 阅读 · 17 评论 -
Spark性能调优 Shuffle(二)
1.shuffle原理什么样的情况下,会发生shuffle?在spark中,主要是以下几个算子:groupByKey、reduceByKey、countByKey、join,等等。什么是shuffle?groupByKey,要把分布在集群各个节点上的数据中的同一个key,对应的values,都给集中到一块儿,集中到集群中同一个节点上,更严密一点说,就是集中到一个节点的一个execu...原创 2019-01-05 14:49:19 · 237 阅读 · 0 评论 -
Spark性能调优(三) 算子调优
1.Map到MapPartitions的使用如果是普通的map,比如一个partition中有1万条数据;ok,那么你的function要执行和计算1万次。但是,使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的partition数据。只要执行一次就可以了,性能比较高。1.1. MapPartitions的缺点如果是普...原创 2019-01-05 15:08:37 · 255 阅读 · 2 评论 -
Spark常见问题处理
1.shuffle reduce端缓冲大小以避免OOMmap端的task是不断的输出数据的,数据量可能是很大的。但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的应用。每次reduece能够拉取多少数据,就由buffer来决定。因为拉取...原创 2019-01-05 19:44:09 · 1019 阅读 · 1 评论 -
Spark数据倾斜解决方案
1.聚合源数据 咱们现在,做一些聚合的操作,groupByKey、reduceByKey;groupByKey,说白了,就是拿到每个key对应的values;reduceByKey,说白了,就是对每个key对应的values执行一定的计算。现在这些操作,比如groupByKey和reduceByKey,包括之前说的join。都是在spark作业中执行的。 spar...原创 2019-01-05 23:38:08 · 128 阅读 · 0 评论 -
combineByKey函数详解
如下给出combineByKey的定义,其他的细节暂时忽略(1.6.0版的函数名更新为combineByKeyWithClassTag)def combineByKey[C]( createCombiner: V => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C,...原创 2019-09-13 23:49:09 · 1588 阅读 · 0 评论