Динамическая аллокация ресурсов (доступно с версии SPYT 2.8.0)
Динамическая аллокация позволяет масштабировать ресурсы под нужды Spark приложения в заданных пределах.
Для работы динамической аллокации требуется подключенный внешний shuffle-сервис, который обеспечивает сохранность данных при удалении экзекьюторов.
Для включения опции необходимо выставить следующие параметры:
--conf spark.dynamicAllocation.enabled=true
--conf spark.ytsaurus.shuffle.enabled=true
Помимо этого необходимо указать минимальное и максимальное число экзекьюторов и дополнительные параметры при необходимости, используя стандартную конфигурацию Spark:
--conf spark.dynamicAllocation.minExecutors=1 # минимум при простое
--conf spark.dynamicAllocation.maxExecutors=10 # максимум при нагрузке
--conf spark.dynamicAllocation.executorIdleTimeout=120s # таймаут остановки при неактивности
--conf spark.dynamicAllocation.initialExecutors=5 # стартовое количество экзекьюторов
Из-за особенностей операций в YTsaurus параметр minExecutors не должен быть равен нулю.
Примечание
На данный момент динамическая аллокация не поддерживает множественные профили ресурсов экзекьюторов.
Если все настроено верно и характер приложения подразумевает неравномерное использование вычислительных ресурсов, то на странице мониторинга операции вы будете наблюдать изменение количества CPU с течением времени.
