【问题标题】:Aws Emr Cluster creation with RunJobFlowResult unable to take specified config?使用 RunJobFlowResult 创建 Aws Emr 集群无法采用指定的配置?
【发布时间】:2019-10-23 08:05:01
【问题描述】:

我正在使用 AWS Java SDK 创建一个 Aws Emr 集群。下面是代码sn-p。

JobFlowInstancesConfig jobFlowInstanceConfig = new JobFlowInstancesConfig()
                .withEc2SubnetId(config.getEc2SubnetId())
                .withEc2KeyName(config.getEc2KeyName()) 
                .withInstanceCount(config.getInstanceCount()) 
                .withKeepJobFlowAliveWhenNoSteps(true)    
                .withMasterInstanceType(config.getMasterInstanceType())
                .withSlaveInstanceType(config.getSlaveInstanceType());

RunJobFlowRequest request = new RunJobFlowRequest()
                .withName(clusterName)
                .withReleaseLabel(config.getReleaseLabel())
                .withApplications(applications)
                .withLogUri(config.getLogUri())
                .withServiceRole(config.getServiceRole())
                .withJobFlowRole(config.getJobFlowRole())
                .withInstances(jobFlowInstanceConfig);
RunJobFlowResult runJobFlowResult = emrClient.runJobFlow(request); 

如您所见,我正在使用 .withJobFlowRole(config.getJobFlowRole()) 设置“JobFlowRole”,但它采用无权创建集群的默认值。

我收到以下错误:

com.amazonaws.services.elasticmapreduce.model.AmazonElasticMapReduceException: User: arn:aws:sts::6...0:assumed-role/default-role/i-0...4 is not authorized to perform: iam:PassRole on resource: arn:aws:iam::6...0:role/EMR_DefaultRole (Service: AmazonElasticMapReduce; Status Code: 400; Error Code: AccessDeniedException; Request ID: a...f)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1701)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1356)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1102)

请帮忙。

【问题讨论】:

    标签: amazon-web-services amazon-emr aws-java-sdk


    【解决方案1】:

    JobFlowRole 是 EMR 服务的角色,这不是创建 EMR 的角色。见documentation

    您应该拥有在用于获​​取 AWS 凭证的位置创建 EMR 的正确权限。您的凭据缺少 iam:PassRole

    【讨论】:

    • 感谢这对我有帮助。你能告诉我如何在这里提供用户吗?默认用户没有创建集群的权限。我需要指定用户。抱歉,我是 Aws 新手
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2019-11-27
    • 2018-11-04
    相关资源
    最近更新 更多