繁体   English   中英

在 Yarn 集群模式下如何处理 Spark App 的异常驱动程序终止

[英]How is abnormal Driver termination handled for a Spark App in Yarn cluster mode

我们将 AWS EMR 用于 Spark 作业。 我们所有的作业都以纱线集群模式提交,因此驱动程序将在集群节点之一中运行。 我们使用按需节点作为主节点,使用点实例作为核心节点。 现在,尽管我们几乎总是选择中断率 < 5% 的实例,但有时会发生很大一部分集群节点过早终止(可能是因为更高的需求)。

所以,我想知道,在上述情况下,如果包含驱动程序进程的节点出现故障会发生什么? 在这种情况下,火花工作有恢复的机会吗? 还是工作一去不复返?

Spark 驱动程序是单点故障,因为它为正在运行的应用程序保存所有集群 state。

在实践中,非临时存储可用于检查点批处理应用程序经过昂贵昂贵的转换。 话虽如此,在这种情况下尝试重新启动是可以做到的,但是当我研究它时,至少可以说很难。 我前段时间用我的名字问过这样一个问题,你可以找到它。 我很有技术,但觉得:天哪,工作辛苦了。

所以,恢复意味着滚动你自己的东西,或者接受重新运行。 自从我上次评估 EMR 以来,我发现驱动程序可以在 Master 上运行并且可以进行故障转移,但据我所知,这与您所希望的不同。

EMR 为 Yarn 中的 CORE 节点提供节点平衡。 您的 spark 驱动程序/应用程序主节点仅在 CORE 节点中创建。 HDFS 也仅驻留在核心节点中。 因此,为了以最佳方式处理您的情况,您可以考虑同时使用 CORE 和 TASK 组。 你可以做些什么来解决这个问题 -

  1. 大师:按需
  2. 核心:按需。 最小实例数可以是 1。
  3. 任务:以最小的 EBS 体积进行自动缩放。 在这种情况下,最小实例数可以为 0。

这将降低您的成本,同时确保包含驱动程序进程的节点永远不会关闭。

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM