【发布时间】:2019-11-25 18:45:00
【问题描述】:
我创建了一个简单的步进函数,如下所示: 开始 -> 启动 EMR 集群并提交作业 -> 结束
我想找到一种机制来识别我的 spark 步骤是否成功完成?
我能够启动 EMR 集群并将 Spark 作业附加到它,这会成功完成并终止集群。 遵循此链接中的步骤: Creating AWS EMR cluster with spark step using lambda function fails with "Local file does not exist"
现在,我正在查看状态,ejob poller 将获取有关 EMR 集群创建成功与否的信息。 我正在研究如何找出 Spark 作业状态
from botocore.vendored import requests
import boto3
import json
def lambda_handler(event, context):
conn = boto3.client("emr")
cluster_id = conn.run_job_flow(
Name='xyz',
ServiceRole='xyz',
JobFlowRole='asd',
VisibleToAllUsers=True,
LogUri='<location>',
ReleaseLabel='emr-5.16.0',
Instances={
'Ec2SubnetId': 'xyz',
'InstanceGroups': [
{
'Name': 'Master',
'Market': 'ON_DEMAND',
'InstanceRole': 'MASTER',
'InstanceType': 'm4.xlarge',
'InstanceCount': 1,
}
],
'KeepJobFlowAliveWhenNoSteps': False,
'TerminationProtected': False,
},
Applications=[
{
'Name': 'Spark'
},
{
'Name': 'Hadoop'
}
],
Steps=[{ 'Name': "mystep",
'ActionOnFailure': 'TERMINATE_CLUSTER',
'HadoopJarStep': {
'Jar': 'jar',
'Args' : [
<insert args> , jar, mainclass
]
}
}]
)
return cluster_id
【问题讨论】:
标签: amazon-web-services apache-spark aws-lambda amazon-emr aws-step-functions