Классы хостов Yandex Managed Service for Apache Spark™
Класс хостов определяет вычислительные мощности, которые выделяются для каждого хоста в кластере.
Ограничения приведены в разделе Квоты и лимиты.
Доступные классы хостов
Хосты в кластерах Yandex Managed Service for Apache Spark™ разворачиваются на базе виртуальных машин Yandex Compute Cloud.
Типы конфигураций:
- standard — стандартные ВМ с соотношением объема RAM к ядрам vCPU 4:1;
- memory-optimized — ВМ с увеличенным соотношением RAM к vCPU (8:1).
Ниже приведен полный список возможных конфигураций хостов на каждой из платформ.
| Имя класса хостов | Количество vCPU | RAM, ГБ |
|---|---|---|
| c2-m8 | 2 | 8 |
| c2-m16 | 2 | 16 |
| c4-m16 | 4 | 16 |
| c4-m32 | 4 | 32 |
| c8-m32 | 8 | 32 |
| c8-m64 | 8 | 64 |
| c16-m64 | 16 | 64 |
| c16-m128 | 16 | 128 |
| c32-m128 | 32 | 128 |
| c32-m256 | 32 | 256 |
Прерываемые хосты
Для пула хостов исполнителей можно использовать прерываемые хосты — хосты на базе более дешевых прерываемых ВМ Yandex Compute Cloud. Платформа может остановить такую ВМ при нехватке вычислительных ресурсов в зоне доступности или по истечении 24 часов работы. Для прерываемых ВМ не действует соглашение об уровне обслуживания (SLA).
После остановки хоста Managed Service for Apache Spark™ автоматически создает новый хост, а Apache Spark™ может перепланировать задачи, затронутые прерыванием. Это позволяет снизить стоимость выполнения отказоустойчивых заданий, но может увеличить время их работы.
Важно
Прерываемыми могут быть только хосты исполнителей. Хосты драйверов и вспомогательный пул используют обычные ВМ.
Включить или выключить прерываемость можно при создании или изменении кластера. Настройка доступна как для фиксированного количества хостов исполнителей, так и для автоматического масштабирования.
Когда использовать прерываемые хосты
Прерываемые хосты подходят для нагрузки, устойчивой к потере отдельного исполнителя, когда стоимость важнее предсказуемого времени выполнения. Например:
- Пакетная обработка данных и ETL.
- Регулярные офлайн-расчеты и пересчет данных за прошлые периоды.
- Подготовка признаков и обучение моделей, допускающие повторное выполнение отдельных вычислений.
- Идемпотентные пайплайны, в которых повторное выполнение операций не меняет результат.
Важно
Если задания имеют жесткие требования ко времени выполнения или не допускают повторного выполнения отдельных задач, используйте обычные хосты.
Прерываемые хосты не рекомендуется использовать для следующих нагрузок:
- Интерактивные запросы, в том числе через Spark Connect, и дашборды с требованиями ко времени ответа.
- Потоковая обработка данных с жесткими требованиями к задержке.
- Неидемпотентные задачи и задачи, которые не могут восстановиться после потери исполнителя.
- Вычисления с жестким сроком завершения.
Рекомендации по выполнению заданий
Чтобы уменьшить последствия прерывания хостов:
- Сохраняйте промежуточные результаты в устойчивом хранилище и проектируйте задания так, чтобы отдельные операции можно было безопасно повторить.
- Используйте несколько хостов исполнителей или автоматическое масштабирование с запасом ресурсов, чтобы уменьшить задержки при прерывании хоста.
- Разбивайте долгие вычисления на этапы и сохраняйте контрольные точки.
- Контролируйте выполнение заданий с помощью Spark History Server и логов кластера в Yandex Cloud Logging.
Задания с интенсивным shuffle
Shuffle — это перераспределение данных между исполнителями по сети. Оно происходит, например, при вызове groupBy, distinct и repartition, соединении больших таблиц, глобальной сортировке и использовании оконных функций.
Промежуточные данные shuffle обычно хранятся локально на хостах исполнителей. При остановке хоста Apache Spark™ может повторно выполнить часть предыдущих вычислений, поэтому выполнение задания займет больше времени.
Прерываемые хосты можно использовать для заданий с интенсивным shuffle, если допустимо такое увеличение времени выполнения. Для этих заданий особенно важны запас ресурсов, контрольные точки и сохранение значимых промежуточных результатов во внешнем хранилище.