Выбор ответа Middle Spark спрашивают часто обновлено
Симптом перекоса данных
Вопрос
В Spark UI у стадии джойна 199 задач заканчиваются за 40 секунд, одна работает 50 минут. Что это вероятнее всего?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Перекос данных: у одного или нескольких ключей огромная доля строк, и их партиция непропорциональна. Классическая картина skew: медиана задач маленькая, максимум огромный, и вход у этой задачи в десятки раз больше.
Варианты ответа
- Один executor на медленном диске, нужно перенести его на другой сервер и перезапустить всю стадию
- Перекос данных: у одного или нескольких ключей огромная доля строк, и их партиция непропорциональнаправильный ответ
- Слишком мало памяти у driver, и он не успевает собрать результаты последней задачи стадии
- Нормальная работа sort-merge join: последняя задача сливает результаты остальных 199
Разбор
Классическая картина skew: медиана задач маленькая, максимум огромный, и вход у этой задачи в десятки раз больше. Часто виноваты NULL-ключи или «технический» ключ вроде пустой строки. Медленный диск дал бы замедление всех задач на этом узле, и спекулятивное выполнение бы помогло. Driver тут не участвует. Нормальный sort-merge даёт ровное распределение времени.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.