我通过gui屏幕启动了emr集群。在集群启动后,我可以看到id。如何获得类cluster的对象来表示具有该id的集群?我使用java与emr交互。
zd287kbt1#
不能只运行一个命令来获取集群的标识。下面是一个算法的工作示例,该算法读取所有失败集群的id。
AWSCredentials credentials; credentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); AmazonElasticMapReduceClient emrClient; emrClient = new AmazonElasticMapReduceClient(credentials); emrClient.setEndpoint("elasticmapreduce.eu-west-1.amazonaws.com"); ListClustersRequest req; req = new ListClustersRequest().withClusterStates(ClusterState.TERMINATED_WITH_ERRORS); ListClustersResult res; res = emrClient.listClusters(req); int size = res.getClusters().size(); System.out.println("*****************CLUSTER LIST***************"); System.out.println("***Size: " + size); for(int i = 0 ; i < size; i++){ String clusterID = res.getClusters().get(i).getId(); System.out.println(">>> Cluster: " + clusterID); }
请注意以下步骤:生成一个emr客户端,使用您自己的凭据访问amazon的服务创建一个指示状态筛选器的群集请求(存在多个其他筛选器)获取所选群集的实际列表获取for循环中每个集群的id至于它所指的具体问题,恐怕无法得到集群的实际对象。相反,api允许获取具体集群的信息摘要(在上面提供的代码中使用)。但是,您仍然可以发出命令,例如终止群集,例如:
clusterId //Defined in the code above TerminateJobFlowsRequest terminate; terminate = new TerminateJobFlowsRequest().withJobFlowIds(Arrays.asList(new String[] {clusterId}); emrClient.terminateJobFlows(terminate);
1条答案
按热度按时间zd287kbt1#
不能只运行一个命令来获取集群的标识。下面是一个算法的工作示例,该算法读取所有失败集群的id。
请注意以下步骤:
生成一个emr客户端,使用您自己的凭据访问amazon的服务
创建一个指示状态筛选器的群集请求(存在多个其他筛选器)
获取所选群集的实际列表
获取for循环中每个集群的id
至于它所指的具体问题,恐怕无法得到集群的实际对象。相反,api允许获取具体集群的信息摘要(在上面提供的代码中使用)。但是,您仍然可以发出命令,例如终止群集,例如: