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内存。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注