Каков наилучший способ рассчитать --executor-memory --num-executors --executor-core в спарк - PullRequest
0 голосов
/ 26 июня 2018

У меня есть кластер, содержащий 1 ведущий и 5 ведомых (узел), каждый из которых 32 ядра и 64 ГБ памяти.

Есть ли шаблон для расчета следующего параметра при подаче искры с пряжей

- память исполнителя - num-executors --executor-core

1 Ответ

0 голосов
/ 26 июня 2018

Если у нас есть следующее оборудование, то рассчитать искру

  • 6 Узел
  • 16 код
  • 64 ГБ ОЗУ

Расчеты:

  • 5 ядер на исполнителя
  • -Для максимальной пропускной способности HDFS
  • Всего в кластере 6 * 15 = 90 ядер
  • после извлечения ядер демонов Hadoop / Yarn)
  • 90 ядер / 5 ядер / исполнитель (19/5 = 18-1)
  • = 18 исполнителей
  • У каждого узла есть 3 исполнителя
  • 63 ГБ / 3 = 21 ГБ, 21 * (1 -0,07)
  • ~ 19 ГБ
  • 1 исполнитель для AM => 17 исполнитель

Ответ

  • 17 исполнителей всего
  • 19 ГБ памяти / исполнитель
  • 5 ядер / исполнитель

  • Количество исполнителей (--num -executors)
  • Coures для каждого исполнителя (- executorr-core)
  • Память для каждого исполнителя (--executor-memory)

enter image description here


Executer-memory контролирует размер кучи:

  • Узел некоторые накладные расходы (контролируемые spark.yarn.executor.memory.overhead) для памяти без динамической памяти по умолчанию - максимум (384 МБ, .07 * Spark.executer.memory)

Управление памятью Spark

...