如何以编程方式检查 Spark 步骤状态(在 EMR 集群上提交)?
How to check Spark step status programmatically (submitted on EMR cluster)?
我创建了一个简单的阶跃函数,如下所示:
开始 -> 启动 EMR 集群并提交作业 -> 结束
我想找到一种机制来识别我的 spark 步骤是否成功完成?
我能够启动 EMR 集群并为其附加一个 spark 作业,这成功地完成并终止了集群。
按照此 link 中的步骤操作:
现在,我正在寻找状态,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
我创建了一个简单的阶跃函数,如下所示: 开始 -> 启动 EMR 集群并提交作业 -> 结束
我想找到一种机制来识别我的 spark 步骤是否成功完成?
我能够启动 EMR 集群并为其附加一个 spark 作业,这成功地完成并终止了集群。
按照此 link 中的步骤操作:
现在,我正在寻找状态,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