Job运行过程中,出现BlockNotFoundException异常,并出现stage重试
Job运行过程中,出现BlockNotFoundException异常,并出现stage重试
现象描述
Job运行过程中,出现下图中BlockNotFoundException异常,并出现stage重试。

Job运行过程中,出现BlockNotFoundException异常,并出现stage重试
可能原因
Executor上BlockManager的内存不足导致相应的block数据会从内存中drop掉,导致当前stage的任务获取不到block数据,进而使上一个stage重试,重新生成相应block数据,即出现stage重试的现象。
定位思路
无。
处理步骤
- 根据客户端的配置文件“spark-defaults.conf”中“spark.memory.useLegacyMode”设置的值进行处理:
- false:即启用统一内存管理模式,无需进行其他操作,系统会自行进行优化。
- true:即不启用统一内存管理模式,此时需要手动修改内存比例。 在“spark-defaults.conf”文件中增大配置项“spark.storage.memoryFraction”的参数值,提高BlockManager内存占有Executor内存的比例。
- 增加集群相应的Executor内存。