Вы не можете обрабатывать сбои исполнителя программно в вашем приложении, если это то, что вы просите.Вы можете настроить свойства конфигурации spark, которые управляют фактическим выполнением задания, включая то, как YARN будет планировать задания и обрабатывать сбои задач и исполнителей.
https://spark.apache.org/docs/latest/configuration.html#scheduling
Некоторые важные свойства, которые вы, возможно, захотите проверить:
spark.task.maxFailures (по умолчанию = 4): количество сбоев любой конкретной задачи перед отказом от работы.Общее количество сбоев, распределенных по различным задачам, не приведет к сбою задания;конкретное задание должно провалиться с таким количеством попыток.Должно быть больше или равно 1. Число разрешенных повторных попыток = это значение - 1.
spark.blacklist.application.maxFailedExecutorsPerNode (default = 2): (Экспериментальный) Сколько разных исполнителей должно быть занесено в черный список длявсего приложения, прежде чем узел занесен в черный список для всего приложения.Узлы, занесенные в черный список, будут автоматически добавлены обратно в пул доступных ресурсов по истечении времени ожидания, указанного в spark.blacklist.timeout.Обратите внимание, что при динамическом размещении исполнители на узле могут быть помечены как свободные и могут быть восстановлены менеджером кластера.
spark.blacklist.task.maxTaskAttemptsPerExecutor (default = 1): (экспериментальный) Длязаданная задача, сколько раз она может быть повторена на одном исполнителе, прежде чем исполнитель попадет в черный список для этой задачи.