Как дождаться завершения потока заданий Elastic MapReduce в приложении Java?

Недавно я работал с 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, а затем проверить, завершено ли это задание или нет.

Я надеюсь, что это поможет другим.

11
задан Steffen Opel 25 May 2012 в 19:52
поделиться