Автоматическое масштабирование в Yandex Managed Service for Apache Spark™
Автоматическое масштабирование — это изменение количества хостов в кластере Apache Spark™ в зависимости от текущей нагрузки.
Пул хостов для драйверов и пул хостов для исполнителей масштабируются независимо друг от друга:
-
Если для запуска нового приложения, т. е. нового драйвера, не хватает свободных ядер или памяти, сервис Yandex Managed Service for Apache Spark™ запускает новый хост в пуле хостов для драйверов. Если число запущенных приложений снижается и в пуле хостов для драйверов появляется простаивающий хост, такой хост удаляется.
-
Если для размещения всех исполнителей каждого запущенного приложения не хватает свободных ядер или свободной памяти, сервис Yandex Managed Service for Apache Spark™ запускает новые хосты в пуле хостов для исполнителей. Если число запущенных исполнителей снижается и в пуле хостов для исполнителей появляется простаивающий хост, такой хост удаляется.
Преимущества автоматического масштабирования:
- Кластер становится более производительным при запуске требовательных задач, при этом в моменты простоя лишние хосты удаляются, что снижает плату за них.
- Время выполнения отдельной задачи меньше зависит от количества одновременно запущенных задач.
- Динамическая аллокация становится более эффективной: пул хостов для исполнителей подстраивается под изменяющиеся потребности приложений.
Управление автоматическим масштабированием
Включить и выключить автоматическое масштабирование каждого из двух пулов хостов можно при создании и изменении кластера Apache Spark™.
Для каждого пула хостов можно задать диапазон значений, в котором будет изменяться число хостов в нем:
- Минимальное число — не меньше 0.
- Максимальное число — не больше 100 и не меньше, чем минимальное число.
На что влияет минимальное число хостов в пуле:
- Чем больше минимальное число хостов в пуле для драйверов, тем больше однотипных приложений можно запускать параллельно, не дожидаясь запуска дополнительных хостов.
- Чем больше минимальное число хостов в пуле для исполнителей, тем большую нагрузку можно направлять на кластер, не дожидаясь запуска дополнительных хостов.
- С ростом минимального числа хостов в пулах растет плата за кластер при простое и низкой нагрузке.
На что влияет максимальное число хостов в пуле:
- Чем больше максимальное число хостов в пуле для драйверов, тем больше однотипных приложений можно запустить параллельно.
- Чем больше максимальное число хостов в пуле для исполнителей, тем выше максимальная производительность кластера.
- С ростом максимального числа хостов в пулах повышается плата за кластер при максимальной нагрузке.
Рекомендации по выбору параметров автоматического масштабирования
Выбор параметров зависит от конкретного сценария использования кластера, значения в таблице ориентировочные.
На число однотипных заданий, которые можно запустить на кластере параллельно, и на скорость обработки заданий влияют:
- число хостов в каждом пуле и их класс,
- параметры каждого задания,
- объем зарезервированных под внутренние нужды ресурсов кластера,
- затраты времени на планирование процессов,
- затраты времени на масштабирование пулов,
- использование Shuffle-операций.
| Сценарий | Число хостов для драйверов | Число хостов для исполнителей | Комментарий |
|---|---|---|---|
| Короткоживущие пакетные задания, скорость выполнения не критична | Минимальное — 0. Максимальное — 1. |
Минимальное — 0. Максимальное — согласно бюджету. |
Такие значения параметров позволят уменьшить плату за кластер при длительных простоях, однако при запуске задания потребуется время на запуск хостов. |
| Короткоживущие пакетные задания, скорость выполнения критична | Фиксированное — 1. |
Минимальное — 0. Максимальное — согласно бюджету. |
Такие значения параметров позволят избежать задержек из-за запуска хостов при старте. |
| Длительные пакетные задания с интенсивным использованием Shuffle-операций | Минимальное — 1. Максимальное — согласно целевым метрикам вашего сервиса. |
Минимальное — от 2 до 5. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. |
Такие значения параметров позволят избежать чрезмерного «сжатия» пула хостов для исполнителей при снижении нагрузки между стадиями и затрат времени на повторные увеличения пула. |
| Эксплуатация общего кластера несколькими командами | Минимальное — согласно максимальному числу параллельных заданий. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. | Минимальное — от 2 до 5. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. |
Такие значения параметров позволят избежать задержек из-за запуска хостов при старте при совместном использовании всеми командами. |