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

问题描述 投票:0回答:2

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

因此,我想知道在上述情况下,如果包含驱动程序进程的节点出现故障,会发生什么?在这种情况下,火花工作是否有恢复的机会?还是工作永远消失了?

apache-spark amazon-emr
2个回答
1
投票

Spark驱动程序是一个单点故障,因为它拥有运行中的应用程序的所有群集状态。

实际上,在进行了昂贵而昂贵的转换后,非临时存储可以用于批处理应用程序的检查点。就是说,在这种情况下尝试重新启动是可以的,但是当我调查它时,至少很难说。不久前我以我的名字问了这样一个问题,您可以找到。我非常技术娴熟,但感到:天哪,这是多么艰苦的工作。

因此,恢复意味着要滚动您自己的东西,或接受重新运行。自从我上次评估EMR以来,我看到该驱动程序可以在主服务器上运行并且可以进行故障转移,但是就我所见,这并不是同一件事,也不是您所希望的。


0
投票

EMR具有Yarn中CORE节点的节点级别。您的Spark Driver / Application Master仅在CORE节点中创建。 HDFS也仅驻留在CORE节点中。因此,为了以最佳方式处理您的情况,您可以考虑同时使用CORE和TASK组。您可以做什么来解决这个问题-

  1. MASTER:按需
  2. CORE:点播。最少实例数可以为1。
  3. 任务:以最小的EBS量进行自动缩放的点。在这种情况下,最小实例数不能为0。

这将减少您的成本,并确保包含驱动程序进程的节点永不停机。

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

© www.soinside.com 2019 - 2024. All rights reserved.