Обычно каждый контейнер имеет 3 попытки до окончательного сбоя (настраивается, как упоминалось @rbyndoor). Если одна попытка не удалась, она перезапускается до тех пор, пока число попыток не достигнет предела, и если это не удастся, вся вершина не будет выполнена, все другие задачи будут уничтожены.
Редких сбоев некоторых попыток выполнения задачи нет. такая критическая проблема, особенно при работе в кластере EMR с точечными узлами, которые могут быть удалены во время выполнения, что приводит к сбоям и частичному перезапуску некоторых вершин.
В большинстве случаев причину сбоев вы можете найти в логах трекера.
И, конечно, это не причина для перехода на устаревший MR. Попробуйте найти причину и устранить ее.
В некоторых крайних случаях, даже если задание с некоторыми неудачными попытками выполнено успешно, полученные данные могут быть частично повреждены. Например, при использовании некоторой недетерминированной функции в предложении «распределить по». Как и rand (). В этом случае перезапущенный контейнер может попытаться скопировать данные, полученные на предыдущем шаге (преобразователь), и точечный узел с результатами преобразователя уже удален. В таком случае некоторые контейнеры предыдущего шага перезапускаются, но полученные данные могут отличаться из-за недетерминированной природы функции rand.
Об убитых заданиях.
Мапперы или редукторы могут быть убиты по многим причинам. Прежде всего, когда один из контейнеров полностью вышел из строя, все остальные выполняющиеся задачи уничтожаются. Если спекулятивное выполнение включено, дублированные задачи уничтожаются, если задача не отвечает в течение длительного времени и т. Д. Это вполне нормально и обычно не является показателем того, что что-то не так. Если вся работа завершилась неудачно или у вас много попыток неудачных попыток, вам нужно проверить журналы неудачных задач, чтобы найти причину, а не убитые.