Что означает «Этап пропущен» в веб-интерфейсе Apache Spark?

87

Из моего пользовательского интерфейса Spark. Что значит пропущено?

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

Аравинд Яррам
источник

Ответы:

123

Обычно это означает, что данные были извлечены из кеша и не было необходимости повторно выполнять данный этап. Это согласуется с вашим DAG, который показывает, что на следующем этапе требуется shuffling ( reduceByKey). Всякий раз, когда происходит перетасовка, Spark автоматически кэширует сгенерированные данные :

Shuffle также генерирует большое количество промежуточных файлов на диске. Начиная с Spark 1.3, эти файлы сохраняются до тех пор, пока соответствующие RDD не перестанут использоваться и не будут удалены сборщиком мусора. Это сделано для того, чтобы файлы перемешивания не создавались заново, если происхождение пересчитывается заново.

ноль323
источник
21
Отличный ответ. Если вы хотите узнать , как больше о семантике «пропущено» и «до» стадии на веб - интерфейсе, проверьте github.com/apache/spark/pull/3009 , запрос тянущий , который первым введенную эти понятия. Этот PR также интересен, если вам интересно, как пропущенные / ожидающие этапы взаимодействуют с индикаторами выполнения на уровне задания.
Джош Розен
1
Если я правильно слежу, Spark пропускает их, значит, этого не происходит, и их можно полностью удалить из кода? или код очень эффективен с кешем, так что оставь его? @ zero323
SparkleGoat
1
@SparkleGoat Нет. Это означает, что эти этапы были оценены ранее, и результат доступен без повторного выполнения.
10465355 говорит Reinstate Monica
Другой вопрос, могут ли кеширование и пропуск этапов сделать выходные данные разными?
SparkleGoat
@SparkleGoat, без кеширования (и пропуска из-за этого) - это внутренняя оптимизация искры и никак не меняет выходные данные.
Рави Санвал