Установка и использование переменных среды с скриптами инициализации

Скрипты init имеют доступ ко всем переменным среды, присутствующих в кластере.

Переменные среды по умолчанию

Azure Databricks задает множество переменных по умолчанию, которые могут быть полезны в логике скрипта инициализации. Скрипты инициализации, ограниченные кластером, и глобальные скрипты поддерживают следующие переменные среды:

  • DB_CLUSTER_ID: идентификатор кластера, в котором работает скрипт. См. API кластеров.
  • DB_CONTAINER_IP: частный IP-адрес контейнера, в котором выполняется Spark. Скрипт инициализации выполняется в этом контейнере. См. API кластеров.
  • DB_IS_DRIVER: указывает, запускается ли скрипт на узле драйвера.
  • DB_DRIVER_IP: IP-адрес узла драйвера.
  • DB_INSTANCE_TYPE: тип экземпляра узловой виртуальной машины.
  • DB_CLUSTER_NAME: имя кластера, в котором выполнялся скрипт.
  • DB_IS_JOB_CLUSTER: указывает, был ли создан кластер для выполнения задания. См. раздел "Настройка вычислений для заданий".

Эти предопределенные переменные среды нельзя переопределить.

Установить пользовательские переменные среды

Настраиваемые переменные среды, к которым можно получить доступ из скриптов инициализации, работающих на вычислительном ресурсе, можно задать в конфигурации Spark. См. переменные среды.

Можно также задать переменные среды с помощью spark_env_vars поля в API создания кластера или API обновления кластера.

Использование переменных среды

В следующем примере используется переменная среды по умолчанию для запуска части скрипта только на узле драйвера:

echo $DB_IS_DRIVER
if [[ $DB_IS_DRIVER = "TRUE" ]]; then
  <run this part only on driver>
else
  <run this part only on workers>
fi
<run this part on both driver and workers>

Секреты в скриптах инициализации

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

Дополнительные сведения см. в статье Использование секретов в свойстве конфигурации Spark или переменной среды.