【发布时间】:2014-12-20 08:46:40
【问题描述】:
最近我一直在使用 Amazon Web Services (AWS),我注意到没有太多关于这个主题的文档,所以我添加了我的解决方案。
我正在使用 Amazon Elastic MapReduce (Amazon EMR) 编写应用程序。计算结束后,我需要对他们创建的文件执行一些工作,因此我需要知道工作流程何时完成工作。
这是检查工作流程是否完成的方法:
AmazonElasticMapReduce mapReduce = new AmazonElasticMapReduceClient(credentials);
DescribeJobFlowsRequest jobAttributes = new DescribeJobFlowsRequest()
.withJobFlowStates("COMPLETED");
List<JobFlowDetail> jobs = mapReduce.describeJobFlows(jobAttributes).getJobFlows();
JobFlowDetail detail = jobs.get(0);
detail.getJobFlowId(); //the id of one of the completed jobs
您还可以在 DescribeJobFlowsRequest 中查找特定的作业 ID,然后检查该作业是否已完成或失败。
我希望它会帮助其他人。
【问题讨论】:
-
在这里非常欢迎立即提交您自己的问题解决方案,但是,所需的方法是将其拆分为一个问题和一个答案,请参阅It’s OK to Ask and Answer Your Own Questions - 这有助于对事物进行排序/分类适当地,即在适用的情况下为真正未回答的问题腾出空间,谢谢!
-
谢谢,我会记下来作为将来的参考。
-
您还应该包括其他已完成的状态。如果将
jobAttributes初始化为给定的,某些阅读本文的人可能会永远循环。DescribeJobFlowsRequest jobAttributes = new DescribeJobFlowRequest().withJobFlowStates( "COMPLETED", "TERMINATED", "FAILED" );
标签: java amazon-web-services elastic-map-reduce amazon-emr