Поделиться через


Повышение надежности запуска вычислений с помощью гибких типов узлов

Классические вычислительные ресурсы в Azure Databricks используют гибкие типы узлов, что позволяет вычислительным ресурсам вернуться к альтернативным совместимым типам экземпляров, если указанный тип экземпляра недоступен.

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

Принцип работы гибких типов узлов

При запуске вычислительного ресурса поставщик облачных услуг иногда испытывает нехватку ресурсов для указанного типа инстанса. Это приводит к ошибке нехватки товара:

CLOUD_PROVIDER_RESOURCE_STOCKOUT

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

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

Включите гибкие типы узлов в вашей рабочей области

Администраторы рабочей области могут включить гибкие типы узлов в параметрах администратора рабочей области. При включении все новые классические вычислительные ресурсы в рабочей области будут использовать гибкие типы узлов, если только явно не отключены:

  1. В качестве администратора рабочей области перейдите на страницу параметров.
  2. Перейдите на вкладку "Вычисления ".
  3. Переключите параметр " Включить автоматически гибкие типы узлов ":
    • Включено: все новые классические вычислительные ресурсы автоматически используют гибкие типы узлов, если явно не отключены.
    • Отключен: классические вычислительные ресурсы используют только гибкие типы узлов, если вы явно настраиваетеnode_type_flexibility в конфигурации вычислительных ресурсов.

Этот параметр на уровне рабочей области не влияет на существующие вычислительные ресурсы. При отключении пользователи по-прежнему могут настраивать гибкие типы узлов для отдельных вычислительных ресурсов, явно настраивая worker_node_type_flexibilitydriver_node_type_flexibility поля с настраиваемыми резервными списками. Чтобы запретить пользователям настраивать эти поля, администраторы рабочих областей могут использовать политики вычислений. См. примеры политики типа гибкого узла.

Указание настраиваемого резервного списка

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

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

Пользовательские резервные списки поддерживаются только при настройке вычислений с помощью API. См. справочную документацию по API кластеров .

Например, следующая конфигурация указывает тип экземпляра, к которому будет возвращаться вычислительный ресурс при необходимости:


  "worker_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },
  "driver_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },

Требования к типу резервного экземпляра

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

  • То же количество виртуальных ЦП и память, что и предпочтительный тип экземпляра (резервные экземпляры должны иметь от 100% до 110% памяти предпочтительного типа экземпляра).
  • То же количество локальных дисков и размер диска, что и предпочтительный тип экземпляра
  • Та же архитектура ЦП, что и предпочтительный тип экземпляра (все ARM или все x86)
  • Та же поддержка образа ОС и Фотона в качестве предпочтительного типа экземпляра
  • Не поддерживаются типы экземпляров GPU (GPU не поддерживаются)
  • Не более 5 уникальных типов резервных экземпляров
  • Все типы экземпляров должны иметь согласованную поддержку хранилища: либо все поддерживают хранилище PREMIUM_LRS, либо ни один не поддерживает.

Используйте гибкие типы узлов вместе с пулами

Вы также можете настроить резервный список для пулов. В API пулов задайте node_type_flexibility поле для указания резервных типов экземпляров. Рассмотрим пример.

"node_type_flexibility": {
    "alternate_node_type_ids": ["Standard_L8s_v2"]
  }

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

Просмотр приобретенных типов экземпляров

При использовании гибких типов узлов вычислительный ресурс может состоять из различных типов экземпляров. Все резервные типы экземпляров совместимы с предпочитаемым типом, сохраняя одинаковый количество виртуальных ЦП, память, макет диска, архитектуру ЦП и образ ОС, чтобы обеспечить правильную работу рабочей нагрузки.

Вы можете просмотреть, какие типы экземпляров были приобретены для вычислительного ресурса:

  1. На странице сведений о вычислениях щелкните три точки рядом с кнопкой "Завершить " и выберите "Просмотреть JSON".
  2. Просмотрите node_type_id поле для каждого исполнителя, чтобы узнать, какие типы экземпляров выполняются.

Вы также можете использовать API получения сведений о кластерах для получения этих сведений программным способом. Кроме того, пользователи с разрешением на доступ к системным таблицам могут запрашивать таблицу node_timelines . См. схему таблицы временной шкалы узла .

Отключение гибких типов узлов в вычислительном ресурсе

Замечание

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

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

"worker_node_type_flexibility": {
  "alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
  "alternate_node_type_ids": []
}