手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

spark如何防止内存溢出

时间:2024-10-19 03:58:03

1、Spark在一个Executor中的内存分为三块,一块是execution内存,一块是storage内存,一块是other内存。

spark如何防止内存溢出

2、map过程产生大量对象导致内存溢出,单个map中产生了大量的对象容易导致内存溢出。面对这种问题不能使用rdd.coalesce方法,这个方法只能减少分区,不能增加分区,不会有shuffle的过程。

spark如何防止内存溢出

3、数据不平衡导致内存溢出,也有可能导致性能的问题,此时调用repartition重新分区即可。

spark如何防止内存溢出

4、coalesce调用导致内存溢出,令程序按照我们想的先执行100个Task再将结果合并成10个文件,这个问题同样可以通过repartition解决,调用repartition(10)。

spark如何防止内存溢出

5、shuffle内存溢出的情况可以说都是shuffle后,单个文件过大导致的。在Spark中,join,reduceByKey这一类型的过程,都会有shuffle的过程,在shuffle的使用,需要传入一个partitioner。

spark如何防止内存溢出

6、standalone模式下资源分配不均匀导致内存溢出,同时配置–executor-cores或者spark.executor.cores参数,确保Executor资源分配均匀。

spark如何防止内存溢出

7、在RDD中,共用对象能够减少OOM的情况。

spark如何防止内存溢出
© 手抄报圈