EMR の boto3 クライアントを使用して spark-submit を実行しようとしています。以下のコードを実行した後、EMR ステップが送信され、数秒後に失敗しました。ステップログからの実際のコマンドラインは、EMR マスターで手動で実行した場合に機能します。
コントローラーのログには、複数のプロセスが同時に書き込みを行っているように見える、読み取りにくいゴミが表示されます。
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'
]
}
},
]
)