Я использую Zeppelin 0.7.3 с Spark 2.3 в режиме клиента пряжи.
Мои настройки:
Spark:
spark.driver.memory 4096m
spark.driver.memoryOverhead 3072 м
spark.executor.memory 4096m
spark.executor.memoryOverhead 3072m
spark.executor.cores 3
spark.executor.instances 3
Пряжа:
Минимальное распределение: память: 1024, vCores: 2
Максимальное распределение: память: 9216, vCores: 6
Приложение, запущенное Zeppelin, получает следующие ресурсы:
Беговые контейнеры 4
выделенные ЦП VCores 4
выделенная память, МБ 22528
Я не совсем понимаю объем памяти, выделяемый пряжей. Учитывая настройки,
Я предположил бы, что пряжа сохранит (4096 + 3072) * 4 м = 28672 м. Тем не менее, похоже,
опция spark.executor.memoryOverhead игнорируется (я также пробовал spark.yarn.executor.memoryOverhead
без эффекта). Поэтому минимум 384 м выделяется как накладные расходы. Как минимальное выделение
установлен на 1024 м, в результате мы получим (4096 + 3072) * 1 м + (4096 + 1024) * 3 м = 22528 м, где первый член
драйвер и второе слагаемое суммируют память исполнителя.
Почему выделено только 4 VCore процессора, хотя я и запросил больше, а минимальное
установить на 2 и я запросил больше ядер? При поиске мастера приложений я нахожу следующих исполнителей:
Здесь у исполнителей действительно есть по 3 ядра. Как мне узнать, какое значение является правильным или что
я скучаю?
- Я попробовал несколько настроек, и в режиме клиента пряжи я должен использовать такие параметры, как
spark.yarn.am.memory или spark.yarn.am.cores. Тем не менее, кажется, что они игнорируются пряжей.
Почему это так? Кроме того, в режиме клиента пряжи драйвер должен работать снаружи
пряжи Почему ресурсы по-прежнему распределяются внутри пряжи? Мой Zeppelin работает на той же машине
как один из рабочих.