В чем разница между FAILED AND ERROR в состояниях искрового приложения

Я пытаюсь создать диаграмму состояний отправленного искрового приложения. Я и вроде потерялся, когда тогда приложение считается НЕ ПРОШЁТНЫМ.

Состояния взяты отсюда: https://github.com/apache/spark/blob/d6dc12ef0146ae409834c78737c116050961f350/core/src/main/scala/org/apache/spark/deploy/master/DriverState.scala

введите здесь описание изображения


person Aravind Yarram    schedule 26.08.2016    source источник


Ответы (1)


Этот этап очень важен, так как когда дело доходит до больших данных, Spark великолепен, но давайте признаем, мы еще не решили проблему!


Когда задача/задание терпит неудачу, Spark перезапускает его (напомним, что RDD, основная абстракция, предоставляемая Spark, представляет собой устойчивый распределенный набор данных, который не является тем, что мы ищем здесь, но он даст интуиция).

Я использую Spark 1.6.2, и мой кластер перезапускает задание/задачу 3 раза, когда оно помечено как FAILED.

Например, на одном из моих недавних заданий пришлось перезапустить целую стадию:

введите здесь описание изображения

В кластере/приложении можно увидеть идентификаторы попыток, здесь приложение находится в третьей и последней попытке:

введите здесь описание изображения

Если эта попытка помечена как FAILED (по какой-либо причине, например, нехватка памяти, плохой DNS, выделение памяти GC, сбой диска, узел не ответил на 4 такта (вероятно, не работает) и т. д.), затем Spark перезапустит задание.

person gsamaras    schedule 26.08.2016
comment
по сути, это означает, что неудачное задание может быть перезапущено заданное количество раз... и в этот момент оно может находиться в стадии ПЕРЕЗАПУСКА. - person Aravind Yarram; 26.08.2016
comment
@Pangea, когда Spark замечает, например, что первая попытка не удалась, она продолжит и запланирует повторный запуск задания. Однако это не будет сделано мгновенно! Например, у моей работы 2000 исполнителей. После неудачной первой попытки он потеряет всех своих исполнителей и весь достигнутый прогресс. Это означает, что вторая попытка начнется с нуля, это означает, что задание ПРИНЯТО, но ему нужно будет подождать, пока планировщик перейдет в состояние «РАБОТАЕТ» (на этом этапе наше задание находится в фазе ПЕРЕЗАПУСКА, т. е. процесс что Spark должен сделать, чтобы подготовить почву для второй попытки запуска - person gsamaras; 26.08.2016
comment
состояние ACCEPTED, похоже, отсутствует rel="nofollow noreferrer">github.com/apache/spark/blob/ - person Aravind Yarram; 26.08.2016
comment
@Pangea работа ПРИНИМАЕТСЯ, а не водитель. Но в любом случае вы можете игнорировать это, если хотите (я имею в виду, что это может зависеть от Планировщика). Проверьте это здесь. Как правило, ACCEPTED означает, что задание принято в кластере, но еще не ВЫПОЛНЯЕТСЯ. - person gsamaras; 26.08.2016
comment
Спасибо. Было бы здорово, если бы вы помогли мне завершить эту диаграмму состояний из автономного планировщика. Я могу добавить это в gitbook, если вы хотите внести свой вклад - person Aravind Yarram; 26.08.2016
comment
@Pangea У меня есть настоящий кластер, корпоративный. Тем не менее, скажите мне, какую информацию вы хотите больше, и я дам ее, было бы неплохо внести свой вклад. - person gsamaras; 26.08.2016
comment
Я прокомментирую здесь после того, как сделаю это доступным на gitbook. спасибо - person Aravind Yarram; 26.08.2016