![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpareCore
weixin_44932024
这个作者很懒,什么都没留下…
展开
-
Spark性能调优之shuffle调优
目录HashShuffleMangerSortShuffleManagertungsten-sort(钨丝)总结HashShuffleManger普通机制示意图比如:有100个节点(每个节点有一个executor),每个executor有2个cpu core、10个task,那么每个节点会输出10*1000=1万个文件,在map端总共会输出100*10000...原创 2019-11-09 13:36:55 · 138 阅读 · 0 评论 -
Spark性能调优(一)
给足资源分配更多资源:性能调优的王道,就是增加和分配更多的资源,性能和速度的提升是显而易见的;基本上,在一定的范围内,增加资源与性能的提升是成正比的。写成一个复杂的spark作业之后,性能调优的第一步,就是要调节最优的资源配置,在这基之上,如果spark作业能够分配的资源达到你能力范围的顶端,无法再分配更多资源了,公司资源有限,那么才考虑做后面的调优的点搭建集群在spark安装包的c...原创 2019-11-04 14:06:33 · 114 阅读 · 0 评论 -
Spark性能调优(二)
对共用的RDD进行持久化这种情况是一定要避免的,一旦出现一个RDD重复计算的情况,就会导致性能急剧降低。比如:HDFS-->RDD1-->RDD2的时间是15分钟,那么此时就要执行两遍,变成30分钟可以使用 cache()和 persist()对RDD进行持久化操作其实 cache()就是 persist(MEMORY_NOLY),只使用内存进行持久化,但在实际的生产...原创 2019-11-04 15:44:47 · 88 阅读 · 0 评论 -
Spark性能调优(三)
使用广播变量广播变量原理广播变量,在初始时就在driver上有一个副本。Task在运行时要使用广播变量中的数据,此时首先会在自己本地的Executor对应的BlockManager中尝试获取变量的副本;如果本地没有,那么就从driver远程拉取变量副本,并保存在BlockManager中,此后这个executor上的task都会直接使用本地的BlockManager中的副本。Executo...原创 2019-11-04 16:56:39 · 97 阅读 · 0 评论