клиентский режим отличается от кластерного режима, когда драйвер работает в мастере приложения?
Да , когда приложение Spark развернуто поверхYARN в
- в режиме клиента , драйвер будет работать на компьютере, на который было отправлено приложение , и машина должна быть доступна в сети до момента приложениязавершается.
- Режим кластера , драйвер будет запущен в главном узле приложения (по одному на одно искровое приложение), и машина, отправляющая приложение, не должна находиться в сети после отправки
Режим клиента
Режим кластера
Если приложение Spark подается с режим кластера в своем собственном диспетчере ресурсов (автономно), тогда процесс драйвера будет в одном из рабочих узлов.
Ссылки на изображения и контент:
В клиентском режиме драйвер и мастер приложенияявляются отдельными процессами и, следовательно, spark.driver.memory
+ spark.yarn.am.memory
должно быть меньше памяти машины?
Нет , В режим клиента ,драйвер и AM являются отдельными процессами и существуют в разных машинах , поэтому объединять память не нужно, но spark.yarn.am.memory
+ some overhead
должно быть меньше, чем память контейнера YARN (yarn.nodemanager.resource.memory-mb
).Если оно превысит YARN, Resource Manager уничтожит контейнер.
В режиме клиента память драйвера не включена в настройку основной памяти приложения?
Здесь spark.driver.memory
должно быть меньше доступной памяти на машине, откуда будет запускаться приложение spark.
Но, В кластерном режиме использовать spark.driver.memory
вместо spark.yarn.am.memory
.
spark.yarn.am.memory
: 512 м (по умолчанию)
Объем памяти, используемый для мастера приложений YARN в режиме клиента, в том же формате, что и строки памяти JVM (например, 512m, 2g
).В режиме кластера используйте spark.driver.memory
вместо этого.Используйте строчные суффиксы, например, k, m, g, t
и p
для киби, меби, гиби-, тиби и пебибитов соответственно.
Проверьте подробнее об этомсвойства здесь