如何在 EMR 步骤函数中硬编码集群 ID

时间:2021-05-20 19:32:04

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

我正在尝试创建 EMR 步骤函数,我想在其中指定始终运行的 EMR 集群。我在网上遇到的所有例子,都告诉你如何创建一个集群,然后在工作完成后终止它。

我的 EMR 阶跃函数如下:

{
  "Comment": "My EMR Step",
  "StartAt": "Config_Meta",
  "States": {
    "Config_Meta": {
      "Type": "Task",
      "Resource": "arn:aws:states:::elasticmapreduce:addStep.sync",
      "InputPath": "$",
      "Parameters": {
        "ClusterId.$": "j-4ABCDEFGHIK",
        "Step": {
          "Name": "Config_Meta",
          "ActionOnFailure": "CONTINUE",
          "HadoopJarStep": {
            "Jar": "command-runner.jar",
            "Args": [
              "bash",
              "-c",
              "source /home/hadoop/.bashrc && spark-submit --deploy-mode cluster --executor-cores 4 --driver-cores 4 --executor-memory 19g --driver-memory 19g --num-executors 27 --conf spark.default.parallelism=100 --conf spark.yarn.executor.memoryOverhead=9g --conf spark.shuffle.io.retryWait=180s --conf spark.network.timeout=500s --conf maximizeResourceAllocation=true s3://path/config_meta.py"
            ]
          }
        }
      },
      "End": true
    }
  }
}

我在 "ClusterId.$": "j-4ABCDEFGHIK" 中指定了我的集群 ID。但是,当我尝试保存它时出现以下错误。

<块引用>

“ClusterId.$”字段的值必须是有效的 JSONPath

有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

解决方案是从集群变量定义中删除 $

改变

"ClusterId.$": "j-4ABCDEFGHIK"

"ClusterId": "j-4ABCDEFGHIK"
相关问题