我正在尝试使用boto3来启动这样的EMR集群:
client = boto3.client('emr')
client.run_job_flow(**kwargs)
我收到此错误:
ClientError: An error occurred (ValidationException) when calling the
RunJobFlow operation: InstanceProfile is required for creating cluster.
(这是关于Python 3.5的boto3版本1.4.2。)
http://boto3.readthedocs.io/en/latest/reference/services/emr.html?highlight=emr#EMR.Client.run_job_flow没有提及InstanceProfile属性。
我已经尝试过我的(工作)aws cli脚本中的参数:
--ec2-attributes '{"KeyName":"MyKeyPair",
"InstanceProfile":"EMR_EC2_DefaultRole",
"AvailabilityZone":"us-east-1c",
"EmrManagedSlaveSecurityGroup":"sg-7c753416",
"EmrManagedMasterSecurityGroup":"sg-7e753414"}'
....在kwargs的不同地方添加了arg,但没有运气。
任何人都可以给我一个提示或展示一个有效的例子吗?
任何帮助表示感谢。
答案 0 :(得分:4)
再试一次,它有效!
JobFlowRole='EMR_EC2_DefaultRole'
这是client.run_job_flow()的参数,或** kwargs中的顶级键。
以下是向我展示如何操作的示例:
http://tech.adroll.com/blog/spark/2016/01/25/spark-on-emr.html
HTH别人。