Мой ответ слишком длинный для комментария, поэтому, извините, я не отвечаю непосредственно на ваш вопрос. Я в основном говорю из опыта моего ответа.
Если исключение попадает на этот уровень, вы можете в значительной степени предположить, что работа умрет. Я обнаружил, что просто попытка повторить попытку или попытку автоматического исправления проблемы в ответ на вызванное исключение является бесполезной. Слишком много, что может пойти не так.
Обычно, когда работа, которая обычно выполняется нормально, терпит неудачу, в системе возникает что-то плохое, которое необходимо устранить. Возможно, NameNode мертв, возможно, коммутатор немой, кто знает. К сожалению, эти проблемы требуют внимания человека.
На мой взгляд, усилия по развитию лучше потратить на создание какой-то инфраструктуры оповещения (обычно электронная почта), которая позволяет вам знать, как только ваша работа потерпит неудачу ... вместо учета тонны угловых дел.
Как только вы обнаружите некоторые общие проблемы с кластером и заданиями, вы можете начать обработку исключений в своих приложениях. Я не думаю, что стоит потратить ваше время, чтобы объяснить все впереди.
Это довольно старая тема, но для записи исключение также может быть вызвано вызовом isComplete() после отправки задания и до его фактического начала выполнения. В таком случае исключение не означает, что задание не удастся. Вам нужно взглянуть на исходный код isComplete(), чтобы увидеть, как они справляются с этим случаем. – PNS