Исполнители и ядра в Apache Spark - PullRequest
0 голосов
/ 13 февраля 2020

Я немного новичок в Spark и пытаюсь понять несколько терминов. (Не могу понять, используя онлайн-ресурсы)

Пожалуйста, подтвердите сначала меня с помощью следующих условий:

Исполнитель: container or JVM process, который будет работать на worker node or data node. У нас может быть несколько исполнителей на узел.

Ядро: это поток в container or JVM process, работающий на worker node or data node. У каждого исполнителя может быть несколько ядер или потоков.

Пожалуйста, исправьте меня, если я ошибаюсь в приведенных выше двух понятиях.

Вопросы:

1) Каждый раз, когда мы отправляем задание Spark, Что это значит ? Передаем ли мы нашу работу Yarn или менеджеру ресурсов, который назначит ресурсы для моего application or job в кластере и выполнит это? Его правильное понимание ..?

2) В команде, используемой для отправки задания в спарк-кластер, есть возможность установить количество исполнителей.

spark-submit --class <CLASS_NAME> --num-executors ? --executor-cores ? --executor-memory ? ....

Итак, это число исполнителей + ядра будут настраиваться для каждого узла? Если нет, то как мы можем установить указанное c количество ядер на узел?

1 Ответ

0 голосов
/ 13 февраля 2020

Все ваши предположения верны. Подробное описание архитектуры кластера приведено по ссылкам от go до . Вы получите четкую картину. Что касается вашего второго вопроса, num-executors для всего кластера. Он рассчитывается следующим образом:

num-cores-per-node * total-nodes-in-cluster

Например, предположим, что у вас есть кластер из 20 узлов с 4-ядерными компьютерами, и вы отправляете приложение с -executor-memory 1G и --total-executor -cores 8. Затем Spark запустит восемь исполнителей, каждый с 1 ГБ ОЗУ, на разных машинах. Spark делает это по умолчанию, чтобы дать приложениям возможность достичь локальности данных для распределенных файловых систем, работающих на тех же компьютерах (например, HDFS), потому что эти системы обычно распределяют данные по всем узлам.

Надеюсь, это поможет!

...