Конфигурация настройки производительности Spark для 10 миллионов данных - PullRequest
0 голосов
/ 29 ноября 2018

Мы запускаем наше приложение SPARK, написанное на JAVA, на следующем оборудовании:

  1. один главный узел
  2. два рабочих узла (каждый с 502,5 ГБ доступной памяти и 88 ядрами (ЦП)).

со следующей конфигурацией для команды ./spark-submit:

- executor-memory = 30 ГБ --driver-memory = 20G --executor-cores = 5--driver-cores = 5

Мы используем Диспетчер кластеров SPARK .

Требуется 13 минут для обработки 10 миллионов данных.

Мы не имеем права делиться кодом приложения.

Может кто-нибудь предложить конфигурацию для настройки нашего приложения для повышения производительности?

Дайте мне знать, если вам нужен какой-либо другойдеталь.

Мы используем SPARK 2.3.0

EDIT

наши данные содержат 127 столбцов и 10 миллионов строк.Спарк стартовал 32 исполнителями с вышеуказанной конфигурацией.мы выполняем внешний вызов приложения внутри функции flatmap.

Как вы думаете, не хватает ли аппаратных ресурсов?

1 Ответ

0 голосов
/ 29 ноября 2018

Если вы работаете в автономном кластере Spark, вы можете попробовать установить для параметра --executor-cores=5 более низкое значение, и у вас будет больше исполнителей, если ваша операция не требует интенсивной загрузки ЦП.Также попробуйте установить для --total-executor-cores значение 88 (или максимальное количество ядер, которое вы хотите дать, этот параметр контролирует количество исполнителей, которое у вас будет), чтобы вы могли лучше контролировать.

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