Задержка планирования Spark Streaming с уровнем локальности RACK_LOCAL - PullRequest
0 голосов
/ 10 июля 2019

Задержка планирования увеличивается при получении сообщений из 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 практически для всех задач, что задерживает получение данных для выполнения задачи. Я не уверен, что является причиной этого и как решить проблему. Кто-нибудь может вести в правильном направлении?

enter image description here enter image description here

Вы можете заметить, что все задачи, имеющие локальность как PROCESS_LOCAL, выполнялись немедленно, в то время как задача с RACK_LOCAL задерживалась в планировании и, в конечном итоге, в обработке. Любые выводы будут очень полезны.

Спасибо.

...