【问题标题】:EMR : All slaves in the job flow were terminated due to SpotEMR:作业流程中的所有从站都因 Spot 而终止
【发布时间】:2020-12-17 07:17:39
【问题描述】:

我们在 EMR 和 Spot 实例方面遇到了一个问题。

我们在同一地区的不同环境(不同的 AWS 账户)中拥有集群:

  • 一个市场类型的主节点:按需
  • 具有市场类型的两个核心节点:现货

当 Spot 实例终止(超过我的最高出价、容量不足或无论如何)时,集群终止并且我只有以下消息: All slaves in the job flow were terminated due to Spot

经过研究,人们已经遇到了这个问题,但这是由于市场类型为 Spot 的主节点,这不是我的情况:

我试图在 AWS 文档中找到一个响应,但结果与我们怀疑的相反:两个核心节点终止,集群终止

问候,

【问题讨论】:

    标签: amazon-emr


    【解决方案1】:

    这是因为您选择核心节点为spot 类型。如果您阅读 AWS EMR 中实例类型的最佳实践,您会发现他们建议至少为核心节点使用一个按需实例。请记住,这需要额外付费

    您可以为核心节点使用实例队列选项,并将现货和按需实例类型添加到此实例队列。

    所以一般的经验法则是

    将主实例和核心实例保持为按需实例,将任务实例保持为 点。

    我添加了一些链接,您可以在其中阅读更多相关信息并相应地配置您的集群。

    链接1:Cluster configuration and Best Practices

    链接2:Types of nodes in EMR

    【讨论】:

    • 感谢您的回答。事实上,我怀疑 EMR 集群需要至少一个按需核心节点来避免终止。但是文档对此并不是很清楚。在提到的 Link1 上,我读到只有丢失配置为 Spot 实例的主节点才意味着集群终止。没有很好记录的另一件事是,您无法使用仅包含 Task 实例的 EMR 定义来描述 CloudFormation 堆栈(即使您不需要使用 HDFS)。 Spot 实例相当晦涩!
    • 最后,我解释了我的卡点续订请求:它会尝试获取一个新实例,直到某个超时(默认为 TimeoutDurationMinutes 60 分钟),如果失败,则执行提供的 TimeoutAction => TERMINATE_CLUSTER(默认)或 SWITCH_TO_ONDEMAND。因为我的集群启用了终止保护,所以集群不会终止,但不会发出进一步的 Spot 实例请求。即使我调整 Spot 实例的大小(考虑强制新请求),它仍会卡住
    猜你喜欢
    • 2020-04-29
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2017-04-16
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多