【问题标题】:EMR cluster not terminating on failure from stepfunctionEMR 集群不会因 stepfunction 失败而终止
【发布时间】:2020-11-29 16:27:18
【问题描述】:

我们正在从 stepfunction 创建 EMR 集群。以下是它执行的步骤

  1. 创建集群
  2. 预处理(如安装脚本等)
  3. 提交作业
  4. 终止集群

这里的问题是当 #3 步骤失败(提交作业)时,它不会在作业失败时终止集群。 当作业成功时,它会终止集群。下面是步骤的定义(忽略语法)

"Submit_Job": {
        "Type": "Task",
        "Resource": "arn:aws:states:::elasticmapreduce:addStep.sync"
        "Parameters": {
            "ClusterId.$": "$.FormattedInputsForEmr.ClusterId",
            "Step": {
                "Name": "Start Job",
                "ActionOnFailure": "CONTINUE",
                "HadoopJarStep": {
                    "Jar": "command-runner.jar",
                    "Args.$": "$.FormattedInputsForEmr.Args[*][*]"
                }
            }
        }

现在当我尝试 ActionOnFailure=TERMINATE_CLUSTER 时,它给了我以下错误

Action on Failure 'TERMINATE_CLUSTER' is invalid Status Code: 400 ErrorCode: ValidationException

我在这里缺少什么

【问题讨论】:

  • 你用什么来完成步骤,boto3?找不到Submit_Job的确切文档
  • @A.B Submit_Job 只是一个名字。
  • 您能否验证是否从控制台启用了终止保护,就像我在我的回答中提到的那样

标签: amazon-web-services amazon-emr aws-step-functions


【解决方案1】:

如果您的集群是在状态机本身中创建和终止的,还有另一种方法可以实现此目的,即使用Step functions Error Handling 捕获错误并转移到终止步骤。

例如,

"Submit_Job": {
  "Type": "Task",
  "Resource": "arn:aws:states:::elasticmapreduce:addStep.sync",
  "Parameters": {
    "ClusterId.$": "$.FormattedInputsForEmr.ClusterId",
    "Step": {
      "Name": "Start Job",
      "ActionOnFailure": "CONTINUE",
      "HadoopJarStep": {
        "Jar": "command-runner.jar",
        "Args.$": "$.FormattedInputsForEmr.Args[*][*]"
      }
    },
    "Catch": [
      {
        "ErrorEquals": [
          "States.ALL"
        ],
        "Next": "<Terminate-Cluster-State>"
      }
    ]
  }
}

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但我发现我创建的 EMR 使用了步进并发。 EMR step tab

    显然,对于具有步骤并发的 EMR,您只能添加带有 actionOnFailure = CONTINUE 的 EMR 步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多