Выбор ответа Middle Spark спрашивают часто обновлено

Симптом перекоса данных

Вопрос

В Spark UI у стадии джойна 199 задач заканчиваются за 40 секунд, одна работает 50 минут. Что это вероятнее всего?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Перекос данных: у одного или нескольких ключей огромная доля строк, и их партиция непропорциональна. Классическая картина skew: медиана задач маленькая, максимум огромный, и вход у этой задачи в десятки раз больше.

Варианты ответа

  1. Один executor на медленном диске, нужно перенести его на другой сервер и перезапустить всю стадию
  2. Перекос данных: у одного или нескольких ключей огромная доля строк, и их партиция непропорциональнаправильный ответ
  3. Слишком мало памяти у driver, и он не успевает собрать результаты последней задачи стадии
  4. Нормальная работа sort-merge join: последняя задача сливает результаты остальных 199

Разбор

Классическая картина skew: медиана задач маленькая, максимум огромный, и вход у этой задачи в десятки раз больше. Часто виноваты NULL-ключи или «технический» ключ вроде пустой строки. Медленный диск дал бы замедление всех задач на этом узле, и спекулятивное выполнение бы помогло. Driver тут не участвует. Нормальный sort-merge даёт ровное распределение времени.

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

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