【问题标题】:Elastic Map Reduce: difference between CANCEL_AND_WAIT and CONTINUE?Elastic Map Reduce:CANCEL_AND_WAIT 和 CONTINUE 之间的区别?
【发布时间】:2013-03-09 03:45:12
【问题描述】:

我刚刚发现使用 Amazon 的 Elastic Map Reduce,我可以指定一个步骤来选择三个 ActionOnFailure 选项之一:

  • TERMINATE_JOB_FLOW
  • CANCEL_AND_WAIT
  • 继续

TERMINATE_JOB_FLOW 是默认值且显而易见 - 它会在步骤失败时关闭整个集群。

CANCEL_AND_WAIT 和 CONTINUE 有什么区别?在我看来,两者都将保持集群运行,并在添加后继续进行下一步。

【问题讨论】:

    标签: boto elastic-map-reduce amazon-emr


    【解决方案1】:

    假设您已经启动了一个集群并添加了以下 3 个步骤:

    • 第一步
    • 第二步
    • 第三步

    现在,如果 Step1 的 ActionOnFailure 为 CANCEL_AND_WAIT,那么如果 Step1 失败,它将取消所有剩余的步骤,并且集群将进入 Waiting 状态。而且我猜如果您使用 --stay-alive 选项启动集群,那么这是默认行为。

    如果Step1 的ActionOnFailure 为CONTINUE,那么在Step1 失败的情况下,它将继续 执行Step2

    如果Step1 的ActionOnFailure 为TERMINATE_JOB_FLOW,那么在Step1 失败的情况下,它会按照您所说的那样关闭集群。

    【讨论】:

    • 谢谢!这完全有道理——那对我来说也是一样的,因为在 boto 中我只在前一个步骤完成后添加新步骤,所以从我的角度来看,CANCEL_AND_WAIT 和 CONTINUE 是相同的。
    • 认为即使使用--stay-alive,TERMINATE_JOB_FLOW 也是默认选项。我已经启动了几个保持活动状态的集群,当其中一个步骤失败时它们都会终止。
    • 对我来说不会这样,所有添加的步骤都进入“取消”状态,集群处于“等待”状态。也许我们在这里缺少一些东西。
    • 这非常非常有趣。也许 boto 使 TERMINATE_JOB_FLOW 成为默认值?无论如何,感谢您的回答!
    • Instances.KeepJobFlowAliveWhenNoSteps 配置也在这里起作用。如果设置为True,集群将在执行(ActionOnFailure=CONTINUE)或取消(ActionOnFailure=CANCEL_AND_WAIT)步骤2和3后WAIT。设置为False时,集群将TERMINATE 在执行或取消步骤 2 和 3 之后。
    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2016-01-14
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多