Ответ вслух Senior Spark спрашивают часто обновлено

Spark-задача работает медленно

Вопрос

Ночная Spark-задача стала работать 4 часа вместо 1. Как будете искать причину?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Открываю Spark UI и нахожу долгую стадию. Смотрю распределение времени задач: если максимум в десятки раз больше медианы, это перекос, ищу горячий ключ и лечу через AQE skew join, broadcast или соление.

Что должно прозвучать в ответе

  • Spark UI: какая стадия долгая, распределение времени задач, объёмы shuffle и spill

  • Перекос: максимум задач против медианы, горячие ключи

  • План через explain: стратегии джойнов, проталкивание фильтров, лишние shuffle

  • Рост данных и число партиций, мелкие файлы на входе

  • Изменения кода: UDF, collect, лишние действия без кеша

  • Ресурсы: память executors, GC, spill на диск

Что могут спросить следом

  • Что такое spill и почему он плох?
  • Как поймать, что broadcast перестал срабатывать?

Разбор

Образцовый ответ: «Открываю Spark UI и нахожу долгую стадию. Смотрю распределение времени задач: если максимум в десятки раз больше медианы, это перекос, ищу горячий ключ и лечу через AQE skew join, broadcast или соление. Если все задачи долгие, смотрю объём shuffle и spill на диск: возможно, выросли данные, и 200 партиций по умолчанию стало мало, или executors не хватает памяти. Через explain проверяю план: не перестал ли срабатывать broadcast из-за роста справочника, проталкиваются ли фильтры в источник, нет ли лишних shuffle. Проверяю вход: тысячи мелких файлов тормозят чтение. И смотрю на последние изменения кода: Python UDF, collect, несколько действий без кеша. Сравниваю с прошлым быстрым запуском по истории в Spark History Server».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.