如何优化我的spark应用程序以合并大小大于集群内存的两个rdd?

时间:2019-01-25 02:58:12

标签: apache-spark optimization yarn rdd hadoop2

我想加入两个RDD,每个占用10 GB的内存。但是我拥有的群集内存只有15 GB。是否有可能以某种方式优化代码,以便我们可以加入这些RDD?

我想到了将RDD保留在DISK中,但似乎不起作用。 有什么优化技术可以用来解决此类问题?

1 个答案:

答案 0 :(得分:1)

集群没有比数据集更多的内存不是必要条件。但是,这有助于提高性能。

如果只有一个联接,则坚持DISK_ONLY不会有帮助。如果您要进行多个联接,则需要保留并计数以强制进行DAG评估。

无论如何,最好的方法是增加数据集分区和shuflle分区(默认为200)。

spark.sql.shuffle.partitions=5000

然后加入。