Aller au contenu principal

Définir et utiliser des variables d'environnement avec des scripts d'initialisation

Les scripts d'initialisation ont accès aux variables d'environnement présentes sur un cluster.

remarque

En mode d'accès standard sur Databricks Runtime 19 et versions ultérieures, seul un ensemble prédéfini de variables d'environnement est disponible pour les scripts d'initialisation. D'autres variables que vous définissez sur un cluster restent disponibles pour votre code utilisateur, y compris les UDF, mais ne sont pas disponibles pour les scripts d'initialisation. Voir les Limitations des variables d'environnement.

Variables d'environnement default

Databricks définit de nombreuses variables default qui peuvent être utiles dans la logique du script d'initialisation. Les scripts d'initialisation à l'échelle du cluster et globaux prennent en charge les variables d'environnement suivantes :

  • DB_CLUSTER_ID: l’ID du cluster sur lequel le script est en cours d’exécution. Consultez l'API Clusters.
  • DB_CONTAINER_IP: l'adresse IP privée du conteneur dans lequel Spark s'exécute. Le script d'initialisation est exécuté à l'intérieur de ce conteneur. Consulter l'API Clusters.
  • DB_IS_DRIVER: si le script s'exécute sur un nœud Driver.
  • DB_DRIVER_IP: l'adresse IP du nœud Driver.
  • DB_INSTANCE_TYPE: le type d'instance de la VM hôte.
  • DB_CLUSTER_NAME: le nom du cluster sur lequel le script s'exécute.
  • DB_IS_JOB_CLUSTER: si le cluster a été créé pour exécuter un Job. Consultez Configurer le calcul pour les Jobs.

Vous ne pouvez pas remplacer ces variables d'environnement prédéfinies.

Définir des variables d'environnement personnalisées

Des variables d'environnement personnalisées, auxquelles vous pouvez accéder depuis les scripts d'initialisation s'exécutant sur la ressource compute, peuvent être définies dans la configuration Spark. Voir Variables d'environnement.

Vous pouvez également définir des variables d'environnement à l'aide du champ spark_env_vars dans l'API de création de clusters ou l'API de mise à jour de clusters.

Utiliser les variables d'environnement

L'exemple suivant utilise une variable d'environnement par default pour exécuter une partie d'un script uniquement sur un nœud du Driver :

Bash
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>

Secrets dans les scripts d'initialisation

Vous pouvez utiliser n'importe quel nom de variable valide lorsque vous référencez un secret. L'accès aux secrets référencés dans les variables d'environnement est déterminé par les autorisations de l'utilisateur qui a configuré le cluster. Les secrets stockés dans des variables d'environnement sont accessibles à tous les utilisateurs du cluster, mais sont masqués lors de l'affichage en texte clair.

Voir Utiliser un secret dans une propriété de configuration Spark ou une variable d'environnement.