Partager via


Quels fichiers puis-je référencer dans un script d'initialisation ?

La prise en charge du référencement d'autres fichiers dans un script d'initialisation dépend de l'emplacement de stockage des fichiers référencés. Cet article décrit ce comportement et fournit des suggestions.

Databricks recommande de gérer tous les scripts d’initialisation comme des scripts d’initialisation associés aux clusters de l’étendue.

Quelle identité est utilisée pour exécuter les scripts d'initialisation ?

En mode d’accès utilisateur unique, l’identité du principal attribué (un utilisateur ou un principal de service) est utilisée.

En mode d'accès partagé ou en mode d'accès partagé sans isolation, les scripts d'initialisation utilisent l'identité du propriétaire du cluster.

Tous les emplacements de stockage des scripts d'initialisation ne sont pas pris en charge sur toutes les versions et modes d'accès de Databricks Runtime. Consultez Où peuvent être installés les scripts d’initialisation ?.

Puis-je référencer des fichiers dans les volumes du catalogue Unity à partir de scripts d'initialisation ?

Vous pouvez référencer des bibliothèques et des scripts d'initialisation stockés dans les volumes Unity Catalog à partir de scripts d'initialisation stockés dans les volumes Unity Catalog.

Important

Les informations d'identification requises pour accéder à d'autres fichiers stockés dans les volumes Unity Catalog sont uniquement disponibles dans les scripts d'initialisation stockés dans les volumes Unity Catalog. Vous ne pouvez référencer aucun fichier dans les volumes Unity Catalog à partir de scripts d'initialisation configurés à partir d'autres emplacements.

Pour les clusters avec mode d'accès partagé, seul le script d'initialisation configuré doit être ajouté à la liste autorisée. L'accès aux autres fichiers référencés dans le script d'initialisation est régi par Unity Catalog.

Puis-je référencer des fichiers d’espace de travail à partir de scripts d’initialisation ?

Dans Databricks Runtime 11.3 LTS et version ultérieure, vous pouvez référencer d’autres fichiers d’espace de travail, comme des bibliothèques, des fichiers config ou des scripts shell à partir des scripts init stockés avec des fichiers d’espace de travail.

Puis-je référencer des fichiers dans le stockage d'objets cloud à partir de scripts d'initialisation ?

Vous pouvez référencer des bibliothèques et des scripts d'initialisation stockés dans le stockage d'objets cloud à partir de scripts d'initialisation.

Pour les clusters avec mode d'accès partagé, seul le script d'initialisation configuré doit être ajouté à la liste autorisée. L'accès aux autres fichiers référencés dans le script d'initialisation est déterminé par l'accès configuré au stockage d'objets cloud.

Databricks recommande d’utiliser des principaux de service Microsoft Entra ID pour gérer l’accès aux bibliothèques et aux scripts d’initialisation stockés dans Azure Data Lake Storage Gen2. Utilisez la documentation liée suivante pour effectuer cette configuration :

  1. Créez un principal de service avec des autorisations de lecture et de liste sur les objets blob souhaités. Consultez Accéder au stockage en utilisant un principal de service et Microsoft Entra ID (Azure Active Directory).

  2. Enregistrez vos informations d’identification à l’aide de secrets. Consultez Gérer les secrets.

  3. Définissez les propriétés dans la configuration Spark et les variables d’environnement lors de la création d’un cluster, comme dans l’exemple suivant :

    Configuration 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
    

    Variables d’environnement :

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Facultatif) Refactoriser des scripts init en utilisant azcopy ou l’interface Azure CLI.

    Vous pouvez référencer des variables d’environnement définies pendant la configuration du cluster au sein de vos scripts init pour transmettre les informations d’identification stockées en tant que secrets pour la validation.