堆内存溢出
错误提示
java.lang.OutOfMemoryError: Java heap space
解决
内存不够,数据太多就会抛出OOM的Exeception,主要有driver OOM和executor OOM两种
driver OOM
一般是使用了collect等操作,将所有executor的数据聚合到driver导致。尽量不要使用collect操作即可。executor OOM
- 增加executor内存总量,也就是说增加
spark.executor.memory
的值- 增加任务并行度(大任务就被分成小任务了),参考下面优化并行度的方法