Я пробую различные варианты настройки памяти искрового драйвера в пряже.
Вариант использования:
У меня есть искровой кластер с 1 ведущим и 2 подчиненными
master : r5d xlarge - 8 vcore, 32GB
slave : r5d xlarge - 8 vcore, 32GB
Я использую Apache Zeppelin для запуска запросов на кластере искр.Интерпретатор Spark настроен с использованием свойств, предоставляемых Zeppelin.Я использую spark 2.3.1 , работающий на YARN .Я хочу создать 4 интерпретатора, чтобы 4 пользователя могли параллельно использовать этот кластер.
Конфигурация 1:
spark.submit.deployMode client
spark.driver.cores 7
spark.driver.memory 24G
spark.driver.memoryOverhead 3072M
spark.executor.cores 1
spark.executor.memory 3G
spark.executor.memoryOverhead 512M
spark.yarn.am.cores 1
spark.yarn.am.memory 3G
spark.yarn.am.memoryOverhead 512M
Ниже приведен пользовательский интерфейс искрового исполнителя:
Конфиг 2:
spark.submit.deployMode client
spark.driver.cores 7
spark.driver.memory 12G
spark.driver.memoryOverhead 3072M
spark.executor.cores 1
spark.executor.memory 3G
spark.executor.memoryOverhead 512M
spark.yarn.am.cores 1
spark.yarn.am.memory 3G
spark.yarn.am.memoryOverhead 512M
Ниже приведен искровый исполнительПользовательский интерфейс:
Вопросы:
- Почему размер контейнера драйвера0?
- Рассчитана ли доля spark.memory.fraction (spark.driver.memory-300) * 0,6?Если так, то почему это не точно?(14,22, 7,02 соответственно)
- Почему размер контейнера исполнителя 3,8 ГБ?Согласно моей конфигурации, это должно быть 3G + 512M = 3,5 ГБ.Этой проблемы не было с искрой 2.1
- Нет доступных VCores для YARN - 8 на узел.Как это возможно, поскольку AWS предоставляет vCPU со своими экземплярами?Следовательно, я должен получить только 4 VCores в соответствии с AWS.https://aws.amazon.com/ec2/instance-types/r5/
- Если я хочу использовать 4 переводчика, должен ли я распределить 32 ГБ мастера одинаково для всех переводчиков?
Драйвер:
spark.driver.cores 2
spark.driver.memory 7G
spark.driver.memoryOverhead 1024M