码迷,mamicode.com
首页 > 其他好文 > 详细

2-Spark-1-性能调优-数据倾斜2-Join/Broadcast的使用场景

时间:2019-09-26 00:12:48      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:个数   基于   技术   broadcast   nbsp   ons   ast   进程   适用于   

技术点:RDD的join操作可能产生数据倾斜,当两个RDD不是非常大的情况下,可以通过Broadcast的方式在reduce端进行类似(Join)的操作:

  broadcast是进程级别的,只读的。

  broadcast 可以适用于小表的广播,通过广播到对应节点的内存中(受blockManager的管理),该节点的Rdd通过mapPartitions方法,并通过blockmanager获取到broadcast的内容,进行对相同的key进行(join)操作。

  map方法是将遍历rdd的每个partitions中的每条记录,mapPartitions是遍历到rdd的每个Partitions,相当是基于一个数组(相当于每个partition的缓存)进行批量操作。

适用场景:这种通过Broadcast广播的方式适用于小表,不适用于RDD的数据量非常大的情况,可能会导致OOM,并且对于Gc也是一个比较大的负担(broadcast的变量占用的内存,很容易就会成为Jvm中老年代的成员,且占用较大)。

 

2-Spark-1-性能调优-数据倾斜2-Join/Broadcast的使用场景

标签:个数   基于   技术   broadcast   nbsp   ons   ast   进程   适用于   

原文地址:https://www.cnblogs.com/ywdjx/p/2-Spark-1-performance2.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!