如何限制Spark作业失败的重试次数?
How to limit the number of retries on Spark job failure?
我们是运行通过spark-submit
的Spark作业,我可以看到在失败的情况下作业会重新提交。
如果纱线容器出现故障或出现任何异常,我如何阻止它进行#2 尝试?
这是由于内存不足和 "GC overhead limit exceeded" 问题造成的。
将 属性 yarn.resourcemanager.am.max-attempts
添加到您的 yarn-default.xml 文件中。它指定了应用程序尝试的最大次数。
有关详细信息,请查看此 link
有两个设置可以控制重试次数(即最大 ApplicationMaster
次 YARN 注册尝试被视为失败,因此整个 Spark 应用程序):
spark.yarn.maxAppAttempts
- Spark 自己的设置。见 MAX_APP_ATTEMPTS:
private[spark] val MAX_APP_ATTEMPTS = ConfigBuilder("spark.yarn.maxAppAttempts")
.doc("Maximum number of AM attempts before failing the app.")
.intConf
.createOptional
yarn.resourcemanager.am.max-attempts
- YARN 自己的设置,默认为 2.
(正如你在YarnRMClient.getMaxRegAttempts中看到的)实际数量是YARN和Spark配置设置中的最小值,YARN是最后的选择。
API/programming 语言无关的解决方案是将 yarn max attempts 设置为命令行参数:
spark-submit --conf spark.yarn.maxAppAttempts=1 <application_name>
参见@code 的
但一般情况下 - 它会失败一次并在第二次恢复 - 我猜是在集群或队列太忙的情况下
我正在使用 oozie 协调器 运行 宁工作 - 我正在考虑设置为 1
- 它失败了它将在下一次实现时 运行 -
我们是运行通过spark-submit
的Spark作业,我可以看到在失败的情况下作业会重新提交。
如果纱线容器出现故障或出现任何异常,我如何阻止它进行#2 尝试?
这是由于内存不足和 "GC overhead limit exceeded" 问题造成的。
将 属性 yarn.resourcemanager.am.max-attempts
添加到您的 yarn-default.xml 文件中。它指定了应用程序尝试的最大次数。
有关详细信息,请查看此 link
有两个设置可以控制重试次数(即最大 ApplicationMaster
次 YARN 注册尝试被视为失败,因此整个 Spark 应用程序):
spark.yarn.maxAppAttempts
- Spark 自己的设置。见 MAX_APP_ATTEMPTS:private[spark] val MAX_APP_ATTEMPTS = ConfigBuilder("spark.yarn.maxAppAttempts") .doc("Maximum number of AM attempts before failing the app.") .intConf .createOptional
yarn.resourcemanager.am.max-attempts
- YARN 自己的设置,默认为 2.
(正如你在YarnRMClient.getMaxRegAttempts中看到的)实际数量是YARN和Spark配置设置中的最小值,YARN是最后的选择。
API/programming 语言无关的解决方案是将 yarn max attempts 设置为命令行参数:
spark-submit --conf spark.yarn.maxAppAttempts=1 <application_name>
参见@code 的
但一般情况下 - 它会失败一次并在第二次恢复 - 我猜是在集群或队列太忙的情况下
我正在使用 oozie 协调器 运行 宁工作 - 我正在考虑设置为 1
- 它失败了它将在下一次实现时 运行 -