Производительность искры снижается с увеличением числа рабочих узлов - PullRequest
0 голосов
/ 03 июля 2018

У меня есть приложение spark, которое загружает данные из CSV-файлов, вызывает механизм Drools, использует flatmap и сохраняет результаты в выходные файлы (.csv)

Ниже приведены два теста:

1) Когда я запускаю это приложение с 2 рабочими узлами , имеющими одинаковую конфигурацию (8 ядер), приложению требуется 5,2 минуты для завершения:

  • Нет. Исполнителей: 133

  • Общее количество ядер: 16

  • Используемая память: 2 ГБ (1 ГБ на исполнителя)

  • Доступная память: 30 ГБ

2) Когда я запускаю это приложение с 3 рабочими узлами , имеющими одинаковую конфигурацию (8 ядер), приложению требуется 7,6 минут для завершения:

  • Нет. Исполнителей: 266
  • Общее количество ядер: 24
  • используемая память: 3 ГБ (1 ГБ на исполнителя)
  • Доступная память: 45 ГБ

Ожидаемый результат

Это займет меньше времени после добавления еще одного рабочего узла с такой же конфигурацией.

Фактический результат

Это займет больше времени после добавления еще одного рабочего узла с такой же конфигурацией.

Я запускаю приложение, используя команду spark-submit в автономном режиме .

Здесь я хочу понять, почему увеличение рабочего узла не увеличивает производительность, разве это не правильное ожидание?

EDIT

Посмотрев на другой подобный вопрос по stackoverflow, я попытался запустить приложение с spark.dynamicAllocation.enabled=true, однако это еще больше снижает производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...