Что произойдет, если я выделю все доступные ядра на сервере для спарк кластера - PullRequest
0 голосов
/ 27 января 2019

Как известно, при подаче заявки можно увеличить количество ядер.На самом деле, я пытаюсь выделить все доступные ядра на сервере для приложения Spark.Мне интересно, что будет с представлением?это будет уменьшаться или будет лучше, чем обычно?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Первое, что нужно выделить при распределении ядер (--executor-cores), это помнить, что чем больше ядер в исполнителе, тем больше параллелизма, больше задач будет выполняться одновременно, лучше производительность.Но это не относится к искровой экосистеме.Оставив 1 ядро ​​для ОС и других приложений, работающих на рабочем месте, исследование показало, что оптимально выделить 5 ядер для каждого исполнителя.

Например, если у вас есть рабочий узел с 16 ядрами, оптимальное общее число исполнителей и ядер на каждого исполнителя будет --num-executors 3 и --executor-cores 5 (как 5 * 3 = 15) соответственно.

Мало того, что оптимальное распределение ресурсов приносит лучшую производительность, это также зависит от того, как преобразования и действия выполняются на фреймах данных.Более перетасовка данных между разными исполнителями снижает производительность.

0 голосов
/ 27 января 2019

вашей операционной системе всегда нужны ресурсы для самой ее нужды.
Хорошо иметь 1 ядро ​​и 1 ГБ памяти для операционной системы и других приложений.
Если вы выделите все ресурсы для зажигания, то это не улучшит вашу производительность, другие ваши приложения будут нуждаться в ресурсах.
Я думаю, что не лучше распределять все ресурсы только для зажигания.
если вы хотите настроить свой искровой кластер Как настроить номер искрового исполнителя, ядра и память исполнителя?

...