Таким образом, мы запускаем искровое задание, которое извлекает данные и выполняет некоторое расширенное преобразование данных и записывает их в несколько разных файлов. Все работает нормально, но я получаю случайные экспансивные задержки между ресурсоемкой работой и последующим началом работы.Spark: длительная задержка между заданиями
На рисунке ниже мы видим, что задание, которое было запланировано на 17:22:02, заняло 15 минут, чтобы закончить, что означает, что я ожидаю, что следующая работа будет запланирована на 17:37:02. Однако следующая работа была запланирована на 22:05:59, что на +4 часа после успеха работы.
Когда я вникаю в искровой пользовательский интерфейс следующей работы, он показывает < 1 сек задержки планировщика. Поэтому я смущен тем, откуда происходит эта 4-часовая задержка.
(Спарк 1.6.1 с Hadoop 2)
Обновлено:
Я могу подтвердить, что ответ Дэвида ниже пятно на о том, как IO ОПС обрабатываются в искре бит неожиданный. (Имеет смысл, что файл пишут, по сути, «собирает» за занавесом, прежде чем он пишет, рассматривая порядок и/или другие операции.) Но мне немного неудобно, что время ввода-вывода не включено в время выполнения задания. Наверное, вы можете увидеть его на вкладке «SQL» из искрового интерфейса, поскольку запросы все еще работают даже при успешном выполнении всех заданий, но вы вообще не можете погрузиться в него.
Я уверен, что существуют и другие способы, чтобы улучшить, но ниже двух методов было достаточно для меня:
- уменьшить количество файлов
- набор
parquet.enable.summary-metadata
ложных
это может быть просто ошибка искры UI? Неужели так долго заканчивается? – marios
Это не похоже. Когда я поймаю кластер в таком состоянии неопределенности, буквально ничего не происходит. – codingtwinky
Были ли у вас какие-то ошибки исполнителя/работника в течение 15 минут работы? Если «да» и система перегружены, может случиться так, что ОС потребовалось много времени, чтобы привести следующего исполнителя/работника вверх (из-за ограниченных системных ресурсов). – marios