У меня есть программа-драйвер, которая запускает задание MapReduce с org.apache.hadoop.mapreduce.Job.waitForCompletion(boolean) в Hadoop 2.4.0. Проблема, с которой я сталкиваюсь, заключается в том, что если программа драйвера дает сбой в середине задания, задание будет продолжать выполняться. Есть ли способ убить запущенное задание MapReduce в случае сбоя программы драйвера? Независимо от того, произойдет ли сбой программы драйвера, я не могу это контролировать. Я предполагаю, что для этого потребуется, чтобы клиент и работа периодически опрашивали друг друга. Есть ли для этого настройка или метод в API?
Убить задание MapReduce при сбое программы драйвера
comment
Попробуйте jobClient.run(conf). Это вызовет исключение, если что-то пойдет не так.
- person Amal G Jose   schedule 22.07.2015
Ответы (1)
Вы можете найти свой идентификатор приложения (jobId) в веб-интерфейсе пряжи или ввести yarn application -list
в узле диспетчера ресурсов пряжи кластера. Вы можете убить этот идентификатор приложения с помощью команды kill
как: yarn application -kill <applicationId>
. Думаю, это решит вашу проблему.
person
Sai Neelakantam
schedule
22.07.2015
Есть ли лучшее решение для автоматического уничтожения задания уменьшения карты, как только процесс драйвера будет убит, предположим, с помощью SIGKILL?
- person hunch; 30.07.2019