此问题的解决方法包括以下步骤:
在 AWS Management Console 中打开 EMR 服务。
点击“设置”选项卡,然后单击“集群”选项卡。
确认所需操作的集群已选择,然后单击“编辑”。
在“授权和网络”部分,找到“EC2 实例资格角色”设置。
点击下拉框,检查“EMR-DefaultRole”是否在列表中。如果未显示,点击“更多 IAM 角色…”,并在新窗口中查找“EMR_DefaultRole”。
选中“EMR_DefaultRole”,然后单击“确定”。
点击“重新启动”以保存更改,并等待 EMR 服务重启完成。
示例代码:
以下示例代码可用于 AWS SDK for Python(Boto3),在 EMR 集群创建期间创建“EMR_DefaultRole”:
import boto3
# 创建 IAM 客户端
iam_client = boto3.client('iam')
# 创建 IAM 角色
iam_client.create_role(
Path='/',
RoleName='EMR_DefaultRole',
AssumeRolePolicyDocument="""{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "elasticmapreduce.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}""",
Description='EMR 集群默认资格角色'
)
# 添加 IAM 策略
iam_client.attach_role_policy(
RoleName='EMR_DefaultRole',
PolicyArn='arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole'
)
上一篇:AWSEMR-EMR-DefaultRole在下拉框中未被显示。
下一篇:AWSEMR-Sparksubmitpysparkjobwith--archiveincludingtheentrypoint