如何在Yarn上配置应用程序驱动程序的自动重启

7

来自Spark编程指南

为了自动恢复驱动程序故障,用于运行流处理应用程序的部署基础设施必须监视驱动程序进程,并在其出现故障时重新启动驱动程序。不同的集群管理器有不同的工具来实现这一点。

Spark Standalone

  • Spark Standalone - Spark应用程序驱动程序可以被提交以在Spark Standalone集群内运行(参见集群部署模式),也就是说,应用程序驱动程序本身在一个工作节点上运行。此外,Standalone集群管理器可以被指示监督驱动程序,并在驱动程序由于非零退出代码或驱动程序运行节点故障而失败时重新启动它。有关详细信息,请参见Spark Standalone指南中的集群模式和监管。
  • YARN - Yarn支持类似的机制来自动重新启动应用程序。请参考YARN文档以获取更多详细信息。 ....

所以,问题是如何在Yarn上支持Spark Streaming的自动重启。 谢谢并致以最好的问候,

Tao


在YARN中似乎不可能实现?https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala#L462-463 - yjshen
是的,Spark Submit 不适用于 YARN。但是 YARN 有自己的机制可以解决这个问题。 - Tao Li
那么... 那个机制是什么呢? - joebuild
spark.driver.supervise--supervise 目前在 YARN 上还不被支持。 - CᴴᴀZ
2个回答

4

如此文档所述: https://spark.apache.org/docs/latest/running-on-yarn.html

spark.yarn.maxAppAttempts -
"将尝试提交应用程序的最大次数。它不应超过YARN配置中全局最大尝试次数。"

要设置“YARN配置中全局最大尝试次数”:

https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

yarn.resourcemanager.am.max-attempts - “应用程序尝试的最大次数。这是所有应用程序主节点的全局设置。每个应用程序主节点可以通过API指定其单独的最大应用程序尝试次数,但单独的次数不能超过全局上限。如果超过了全局上限,资源管理器将覆盖它。默认值为2,以允许AM至少重试一次。”


3

1
你能澄清一下你所说的指令集是什么吗?我还是不明白我需要做什么才能让它自动重试。 - KangarooWest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接