gpt4 book ai didi

python - 使用 boto3 客户端提交时,spark-submit EMR 步骤失败

转载 作者:太空狗 更新时间:2023-10-29 20:51:33 26 4
gpt4 key购买 nike

我正在尝试使用 boto3 客户端为 EMR 执行 spark-submit。执行下面的代码后,EMR 步骤提交,几秒钟后失败。如果在 EMR 主机上手动执行,来自步骤日志的实际命令行是有效的。

Controller 日志显示几乎不可读的垃圾,看起来像多个进程同时写入。

UPD:尝试过 command-runner.jar 和 EMR 版本 4.0.0 和 4.1.0

任何想法表示赞赏。

代码片段:

class ProblemExample:
def run(self):
session = boto3.Session(profile_name='emr-profile')
client = session.client('emr')
response = client.add_job_flow_steps(
JobFlowId=cluster_id,
Steps=[
{
'Name': 'string',
'ActionOnFailure': 'CONTINUE',
'HadoopJarStep': {
'Jar': 's3n://elasticmapreduce/libs/script-runner/script-runner.jar',
'Args': [
'/usr/bin/spark-submit',
'--verbose',
'--class',
'my.spark.job',
'--jars', '<dependencies>',
'<my spark job>.jar'
]
}
},
]
)

最佳答案

最后通过正确转义 --jars 值解决了问题。

spark-submit 未能找到类,但在杂乱的日志背景下,错误尚不清楚。

有效的例子是:

class Example:
def run(self):
session = boto3.Session(profile_name='emr-profile')
client = session.client('emr')
response = client.add_job_flow_steps(
JobFlowId=cluster_id,
Steps=[
{
'Name': 'string',
'ActionOnFailure': 'CONTINUE',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': [
'/usr/bin/spark-submit',
'--verbose',
'--class',
'my.spark.job',
'--jars', '\'<coma, separated, dependencies>\'',
'<my spark job>.jar'
]
}
},
]
)

关于python - 使用 boto3 客户端提交时,spark-submit EMR 步骤失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33307754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com