最近、私はAmazon Web Services(AWS)で作業していましたが、その件に関する資料があまりないことに気付きましたので、私のソリューションを追加しました。JavaアプリケーションでElastic MapReduceジョブフローの完了を待つ方法はありますか?
私は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を探すことができますし、そのジョブは失敗で終了しているかどうかを確認します。
他人に役立つことを願っています。
すぐしかし、希望のアプローチは見、質問とまだ答えにこれを分割することです、ここは非常に歓迎されている[それはあなた自身の質問を尋ね、回答するOKです](HTTP ://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)これは物事を適切に分類/分類するのに役立ちます。適用、ありがとう! –
ありがとう、私はそれを将来の参考資料として書きます。 – siditom
完了した他の状態も含める必要があります。与えられたように 'jobAttributes'を初期化すれば、これを読んでいる人々はいつまでもループするかもしれません。 'DescribeJobFlowsRequest jobAttributes = new DescribeJobFlowRequest().JobFlowStates(" COMPLETED "、" TERMINATED "、" FAILED ");' –