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


Использование скриптов инициализации кластера область

Скрипты инициализации в области кластера — это скрипты инициализации, определенные в конфигурации кластера. Скрипты инициализации в области кластера применяются как к создаваемым вами кластерам, так и к кластерам, созданным для выполнения заданий.

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

Можно добавить любое количество скриптов, которые будут выполняться последовательно в указанном порядке.

Если скрипт инициализации в области кластера возвращает ненулевой код результата, то запуск кластера завершается ошибкой. Вы можете устранить неполадки скриптов инициализации кластера область, настроив доставку журналов кластера и проверив журнал скриптов init. См . ведение журнала скриптов Init.

Настройка скрипта инициализации в области кластера с помощью пользовательского интерфейса

В этом разделе содержатся инструкции по настройке кластера для запуска скрипта инициализации с помощью пользовательского интерфейса Azure Databricks.

Databricks рекомендует управлять всеми скриптами инициализации как скрипты область d init кластера. Если вы используете вычислительные ресурсы с общим или одним режимом доступа пользователей, сохраните скрипты инициализации в томах каталога Unity. Если вы используете вычислительные ресурсы с режимом общего доступа без изоляции, используйте файлы рабочей области для сценариев инициализации.

Для режима общего доступа необходимо добавить в него скрипты инициализации allowlist. См . библиотеки allowlist и скрипты инициализации в общих вычислительных ресурсах.

Чтобы использовать пользовательский интерфейс для настройки кластера для запуска скрипта инициализации, выполните следующие действия.

  1. На странице "Конфигурация кластера" щелкните переключатель Дополнительные параметры.
  2. В нижней части страницы откройте вкладку Скрипты инициализации:
  3. В раскрывающемся списке "Источник" выберите тип источника рабочей области, тома или ABFSSS .
  4. Укажите путь к скрипту инициализации, например один из следующих примеров:
    • Для скрипта init, хранящегося в домашнем каталоге с файлами рабочей области: /Users/<user-name>/<script-name>.sh
    • Для скрипта инициализации, хранящегося с томами каталога Unity: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • Для скрипта init, хранящегося в хранилище объектов: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script
  5. Нажмите кнопку Добавить.

В режиме доступа к одному пользователю используется удостоверение назначенного участника (пользователя или субъекта-службы).

В режиме общего доступа используется удостоверение владельца кластера.

Примечание.

Режим общего доступа без изоляции не поддерживает тома, но использует то же назначение удостоверений, что и режим общего доступа.

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

Примечание.

Если вы настроите скрипт init с помощью типа источника ABFSS , необходимо настроить учетные данные доступа.

Databricks рекомендует использовать субъекты-службы идентификатора Microsoft Entra для управления доступом к скриптам инициализации, хранящимся в Azure Data Lake Storage 2-го поколения. Чтобы завершить настройку, используйте следующую связанную документацию:

  1. Создайте субъект-службу с разрешениями на чтение и список для нужных больших двоичных объектов. См . раздел "Доступ к хранилищу" с помощью субъекта-службы и идентификатора Microsoft Entra (Azure Active Directory).

  2. Сохраните учетные данные с помощью секретов. См. раздел Секреты.

  3. Задайте свойства в конфигурации Spark и переменных среды при создании кластера, как показано в следующем примере:

    Конфигурация Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Переменные среды:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Необязательно) Рефакторинг скриптов инициализации с помощью azcopy или Azure CLI.

    Вы можете ссылаться на переменные среды во время настройки кластера в скриптах инициации, чтобы передать учетные данные, хранящиеся в качестве секретов для проверки.

Предупреждение

Скрипты инициализации кластерных область в DBFS являются конечными. Параметр DBFS в пользовательском интерфейсе существует в некоторых рабочих областях для поддержки устаревших рабочих нагрузок и не рекомендуется. Необходимо перенести все скрипты инициализации, хранящиеся в DBFS. Инструкции по миграции см. в разделе "Миграция сценариев инициализации" из DBFS.

Устранение неполадок скриптов инициализации кластера область d

  • Скрипт должен существовать в настроенном расположении. Если скрипт не существует, попытки запустить кластер или увеличить масштаб исполнителя приводят к сбою.
  • Размер скрипта инициализации не может превышать 64 КБ. Если скрипт превысит этот размер, кластер не сможет запуститься, и в журнале кластера появится сообщение о сбое.