如何使用 Step Function 在 Amazon EMR 中添加步骤
Posted
技术标签:
【中文标题】如何使用 Step Function 在 Amazon EMR 中添加步骤【英文标题】:How to add a Step in Amazon EMR using Step Function 【发布时间】:2021-09-16 11:21:14 【问题描述】:我是在 AWS 中创建 Step 函数的新手。我已经创建了一个 EMR 集群并想向它添加一个步骤。我正在使用以下命令:
"Next": "Run first step"
,
"Run first step":
"Type": "Task",
"Resource": "arn:aws:states:::elasticmapreduce:addStep.sync",
"Parameters":
"ClusterId.$": "$.cluster.ClusterId",
"Step":
"Name": "Run Data Transformation",
"ActionOnFailure": "CONTINUE",
"HadoopJarStep":
"Jar": "command-runner.jar",
"Args": [
"spark-submit s3://xdam-nyctaxi-emr-research/scripts/nyctaxi-tranform-task.py s3://xdam-nyctaxi-emr-research/data/nyctaxi-raw/nyc_taxi_trip_duration.csv s3://xdam-nyctaxi-emr-research/data/nyctaxi-transformed/"
]
检查我的 EMR 集群,step 参数应如下所示:
相反,它失败了,因为创建的步骤参数中有引号:
我怎样才能在没有引号的情况下传递参数?
【问题讨论】:
您使用哪个库或平台提交此作业/步骤? 【参考方案1】:Args
数组中的 spark-submit 不应该是像下面这样以数组形式放入的一个长字符串。
'Args': [
'/usr/bin/spark-submit',
'you_script.py'
's3://your_path',
's3://your_path'
]
您可以按顺序或按名称传递 spark-submit 命令自己的参数,提供双破折号后跟名称 (-- ) 作为值之前的前一个数组元素。
【讨论】:
以上是关于如何使用 Step Function 在 Amazon EMR 中添加步骤的主要内容,如果未能解决你的问题,请参考以下文章
如何将无服务器 Step Function/状态机/Lambda 构建嵌套到现有 AWS CloudFormation ElasticBeanstalk 应用程序中?