Мне нужно знать, зачем указывать ядра-исполнители для приложений spark, работающих на пряже. Допустим, у нас есть кластер с нижеуказанными характеристиками:
Количество рабочих узлов: 4 (50 ГБ памяти и 8 ядер каждый)
Один мастер-узел с 50 ГБ памяти и 8 ядрами.
Теперь давайте рассмотрим,
a) если я указал 8 num_executors для приложения и не установил executor-core, будет ли каждый исполнитель использовать все ядра?
b) Так как каждый узел имеет 8 ядер, то что, если я укажу executor_cores = 4, так что это означает, что это ограничит количество ядер исполнителя, которые будут использоваться для исполнителя, не должно превышать 4, в то время как общее количество ядер на узел равно 8?
в) По каким критериям указывается executor_cores для приложения Spark?