spark-大表join优化方案

来源:互联网 发布:google 云计算 入华 编辑:程序博客网 时间:2024/04/19 09:13

数据量:
1~2G左右的表与3~4T的大表进行Join

拆分
将任务数据分为多个结果RDD,将各个RDD的数据写入临时的hdfs目录,最后合并

取所需的字段和数据,并去重,减少data shuffle的规模

调整并行度和shuffle参数

spark-submit 参数

#提高shuffle阶段的任务并行度,降低单个任务的内存占用--conf spark.default.parallelism=2000 #提高shuffle 缓冲区大小--conf spark.shuffle.file.buffer=128k #增加堆外内存大小--conf spark.yarn.executor.memoryOverhead=1g

增加资源

这就不细说了,num-executors 不是越多越好 有边界

优化数据倾斜

检查数据是否是skewed data,即join出的key value pair大小极度不均,解决方案可以参考:
https://zhuanlan.zhihu.com/p/21483985

原创粉丝点击