Задержка планирования увеличивается при получении сообщений из IBM MQ.
Привет
У меня есть приложение для потоковой передачи искр, работающее на EMR Прикладная программа имеет собственный приемник для получения сообщений из IBM MQ и сохраняет данные для преобразования в RDD и их обработки. Ниже приведены спецификации.
- Искра - 2.4.0
- EMR - 5,20
- Hadoop - Amazon 2.8.5
- Пакетный интервал - пробовал с 2 и 5 с
Вычисления очень минимальны, и для обработки всех сообщений пакета требуется ~ 0,5 сек.
- Преобразование XML в JSON.
- проверка.
- Толчок к Кафке.
Объем сообщений не очень высок. Максимум 10 сообщений в пакете 2 с или 25 сообщений в пакете 5 с.
1 мастер-узел
2 основных узла
Каждый с 32G памяти и 2 ядрами на исполнителя.
- Память исполнителя - 4G
- Память драйвера - 5G
Приложение работает нормально и внезапно замечает, что задержка планирования продолжает увеличиваться, что замедляет обработку потока сообщений. При дальнейшем анализе отметили, что задачам назначается локальность RACK_LOCAL практически для всех задач, что задерживает получение данных для выполнения задачи. Я не уверен, что является причиной этого и как решить проблему. Кто-нибудь может вести в правильном направлении?
Вы можете заметить, что все задачи, имеющие локальность как PROCESS_LOCAL, выполнялись немедленно, в то время как задача с RACK_LOCAL задерживалась в планировании и, в конечном итоге, в обработке. Любые выводы будут очень полезны.
Спасибо.