1、executor堆外内存
有时候,如果你的spark作业处理的数据量特别特别大,几亿数据量;然后spark作业一运行,时不时的报错,shuffle file cannot find,executor、task lost,out of memory(内存溢出);
可能是说executor的堆外内存不太够用,导致executor在运行的过程中,可能会内存溢出;然后可能导致后续的stage的task在运行的时候,可能要从一些executor中去拉取shuffle map output文件,但是executor可能已经挂掉了,关联的block manager也没有了;所以可能会报shuffle output file not found;resubmitting task;executor lost;spark作业彻底崩溃。
有时候,如果你的spark作业处理的数据量特别特别大,几亿数据量;然后spark作业一运行,时不时的报错,shuffle file cannot find,executor、task lost,out of memory(内存溢出);
可能是说executor的堆外内存不太够用,导致executor在运行的过程中,可能会内存溢出;然后可能导致后续的stage的task在运行的时候,可能要从一些executor中去拉取shuffle map output文件,但是executor可能已经挂掉了,关联的block manager也没有了;所以可能会报shuffle output file not found;resubmitting task;executor lost;spark作业彻底崩溃。
上述情况下,就可以去考虑调节一下executor的堆外内存。也许就可以避免报错;此外,有时,堆外内存调节的比较大的时候,对于性能来说,也会带来一定的提升。
2、executor的堆外内存不太够用,导致Spark作业停止原理图

本文介绍了在Spark作业中遇到executor内存不足和连接等待超时导致的问题及其解决办法。通过调整executor的堆外内存参数`spark.yarn.executor.memoryOverhead`和网络超时参数`spark.network.timeout`,可以有效防止JVM OOM异常,提高作业性能,并减少由于垃圾回收导致的连接失败问题。这两个参数需在`spark-submit`脚本中设置,而非在代码内设置。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



