Оптимизация использования кластеров декларативных конвейеров Lakeflow Spark с помощью автомасштабирования

На этой странице описывается использование расширенного автомасштабирования для оптимизации конвейеров в Azure Databricks.

Расширенное автомасштабирование включено по умолчанию для всех новых конвейеров. Бессерверные конвейеры также используют вертикальное автомасштабирование. См. раздел "Что такое вертикальное автомасштабирование?".

Для бессерверных конвейеров расширенная автомасштабировка всегда включена и не может быть отключена. См. раздел "Настройка бессерверного конвейера".

Что такое расширенное автомасштабирование?

Улучшенное автоматическое масштабирование Databricks оптимизирует использование кластера путем автоматического выделения ресурсов кластера на основе объема рабочей нагрузки с минимальным влиянием на задержку обработки данных в ваших конвейерах.

Улучшенное автомасштабирование улучшает функционал автомасштабирования кластера Azure Databricks с помощью следующих функций:

  • Улучшенная автомасштабирование реализует оптимизацию потоковых рабочих нагрузок и добавляет улучшения для повышения производительности пакетных рабочих нагрузок. Улучшенная автомасштабирование оптимизирует затраты путем добавления или удаления компьютеров при изменении рабочей нагрузки.
  • Расширенное автоматическое масштабирование заранее завершает работу недостаточно используемых узлов, гарантируя отсутствие неудачных задач во время завершения работы. Существующая функция автомасштабирования кластера масштабирует узлы только в том случае, если узел неактивен.

Расширенный автомасштабирование — это режим автомасштабирования по умолчанию при создании нового конвейера в пользовательском интерфейсе конвейеров. Вы можете включить расширенный автомасштабирование для существующих конвейеров, изменив параметры конвейера в пользовательском интерфейсе. Вы также можете включить расширенный автомасштабирование при создании или изменении конвейеров с помощью REST API конвейеров.

Какие метрики используют расширенный автомасштабирование для принятия решения по масштабированию или уменьшению масштаба?

Улучшенное автомасштабирование использует две метрики для принятия решения о масштабировании вверх или масштабировании вниз.

  • Использование слотов задач: это среднее соотношение количества занятых слотов задач к общему количеству слотов задач, доступных в кластере.
  • размер очереди задач: это количество задач, ожидающих выполнения в слотах задач.

Включение расширенного автомасштабирования для потока данных

Расширенный автомасштабирование — это режим автомасштабирования по умолчанию при создании нового конвейера в пользовательском интерфейсе конвейеров. Вы можете включить расширенный автомасштабирование для существующих конвейеров, изменив параметры конвейера в пользовательском интерфейсе. Вы также можете включить расширенное автоматическое масштабирование при редактировании конвейера в редакторе Конвейеров Lakeflow.

Чтобы использовать расширенное автомасштабирование, выполните один из следующих шагов:

  • Задайте режим кластерадля расширенного автомасштабирования при редактировании параметров конвейера в редакторе Конвейеров Lakeflow.
  • Добавьте параметр autoscale в конфигурацию кластера конвейера и задайте для поля mode значение ENHANCED. См. статью "Настройка классических вычислений для конвейеров".

Используйте следующие рекомендации при настройке расширенного автомасштабирования для рабочих конвейеров:

  • Оставьте параметр Min workers по умолчанию.
  • Задайте для параметра Max workers значение на основе бюджета и приоритета конвейера.

В следующем примере настраивается расширенный кластер автомасштабирования с не менее 5 рабочих ролей и не более 10 рабочих ролей. max_workers должно быть больше или равно min_workers.

Замечание

  • Расширенное автомасштабирование доступно только для кластеров updates. Устаревшее автомасштабирование используется для кластеров maintenance.
  • Конфигурация autoscale имеет два режима:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Если конвейер настроен для непрерывного выполнения, он автоматически перезапускается после изменения конфигурации автомасштабирования. После перезапуска ожидается короткий период повышенной задержки. После этого краткого периода повышенной задержки размер кластера следует обновить на основе конфигурации autoscale, а задержка конвейера должна вернуться к предыдущим характеристикам задержки.

Ограничить затраты на конвейеры, использующие расширенное автомасштабирование

Замечание

Нельзя настроить рабочих для бессерверных конвейеров.

Задание параметра Max workers в области вычислений конвейеров задает верхнюю границу для автомасштабирования. Сокращение числа доступных работников может увеличить задержку для некоторых рабочих нагрузок, но предотвращает увеличение затрат на вычислительные ресурсы во время интенсивных вычислительных операций.

Databricks рекомендует настроить параметры Max workers, чтобы сбалансировать компромисс между затратами и задержкой для ваших конкретных потребностей.

Область вычислений в пользовательском интерфейсе Pipelines, где можно задать максимальное количество рабочих для автомасштабирования

Мониторинг классических конвейеров с включенным расширенным автомасштабированием

Журнал событий в пользовательском интерфейсе конвейера можно использовать для мониторинга расширенных метрик автомасштабирования для классических конвейеров. Расширенные события автомасштабирования имеют тип события autoscale. Ниже приведены примеры событий:

Event Message
Запущен запрос на изменение размера кластера Scaling [up or down] to <y> executors from current cluster size of <x>
Запрос на изменение размера кластера выполнен успешно Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Частично выполнен запрос изменения размера кластера Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Сбой запроса изменения размера кластера Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Кроме того, можно просматривать расширенные события автомасштабирования, напрямую запрашивая журнал событий :

Что такое вертикальное автомасштабирование?

Бессерверные конвейеры дополняют улучшенное горизонтальное автоматическое масштабирование, предоставляемое Databricks, автоматически выделяя наиболее экономичные типы экземпляров, которые могут запускать ваш конвейер без сбоев из-за ошибок нехватки памяти. Вертикальное автоматическое масштабирование увеличивается, когда для выполнения обновления конвейера требуются более крупные типы экземпляров, и уменьшается, когда определяется, что обновление может выполняться с меньшими типами экземпляров. Вертикальное автомасштабирование определяет, следует ли увеличивать или уменьшать масштаб узлов драйверов, рабочих узлов или и тех и других.

Вертикальное автомасштабирование используется для всех бессерверных конвейеров, включая конвейеры, используемые материализованными представлениями Databricks SQL и таблицами потоковой передачи.

Вертикальное автомасштабирование работает путем обнаружения обновлений конвейера, которые завершились сбоем из-за ошибок вне памяти. Вертикальное автоматическое масштабирование выделяет более крупные типы экземпляров при обнаружении этих сбоев на основе данных вне памяти, собранных из сбоя обновления. Для обновлений, использующих автоматическое повторение и поведение перезапуска, запускается новое обновление, использующее новые вычислительные ресурсы. Для нерегламентированных обновлений, использующих быстрое запуск, поведение, ориентированное на отладку, новые вычислительные ресурсы используются при запуске обновления вручную.

Если вертикальное автоматическое масштабирование обнаруживает, что память выделенных экземпляров постоянно недоиспользуется, она приведет к уменьшению масштаба типов экземпляров, используемых в следующем обновлении конвейера.