Installer des bibliothèques à partir du stockage d’objets

Cet article vous guide tout au long des étapes requises pour installer des bibliothèques à partir du stockage d’objets cloud sur Azure Databricks.

Remarque

Cet article fait référence au stockage d’objets cloud en tant que concept général et suppose que vous interagissez directement avec les données stockées dans le stockage d’objets à l’aide d’URI. Databricks recommande d’utiliser des volumes Unity Catalog pour configurer l’accès aux fichiers dans le stockage d’objets cloud. Consultez Présentation des volumes Unity Catalog.

Vous pouvez stocker des bibliothèques JAR et Python Whl personnalisées dans le stockage d’objets cloud, au lieu de les stocker à la racine DBFS. Pour obtenir des détails complets sur la compatibilité des bibliothèques, consultez Bibliothèques à l’échelle d’un cluster.

Important

Vous pouvez également installer les bibliothèques à partir de DBFS lors de l’utilisation de Databricks Runtime 14.3 LTS et versions antérieures. Toutefois, tout utilisateur de l’espace de travail peut modifier les bibliothèques de codes stockées dans DBFS. Pour améliorer la sécurité des bibliothèques dans un espace de travail Azure Databricks, le stockage des bibliothèques de codes dans la racine DBFS est déconseillé et désactivé par défaut dans Databricks Runtime 15.1 et versions ultérieures. Consultez Le stockage des bibliothèques dans la racine DBFS est déconseillé et désactivé par défaut.

Au lieu de cela, Databricks recommande de charger toutes les bibliothèques, notamment les bibliothèques Python, les fichiers JAR et les connecteurs Spark, dans des fichiers d’espace de travail ou des volumes du catalogue Unity, ou d’utiliser des référentiels de packages de bibliothèques. Si votre charge de travail ne prend pas en charge ces modèles, vous pouvez également utiliser des bibliothèques stockées dans le stockage d’objets cloud.

Charger des bibliothèques dans le stockage d’objets

Vous pouvez charger des bibliothèques dans le stockage d’objets de la même façon que vous chargez d’autres fichiers. Vous devez disposer des autorisations appropriées dans votre fournisseur de cloud pour créer des conteneurs de stockage d’objets ou charger des fichiers dans le stockage d’objets cloud.

Accorder des autorisations en lecture seule au stockage d’objets

Databricks recommande de configurer tous les privilèges liés à l’installation de la bibliothèque avec des autorisations en lecture seule.

Azure Databricks vous permet d’attribuer des autorisations de sécurité à des clusters individuels qui régissent l’accès aux données dans le stockage d’objets cloud. Ces stratégies peuvent être développées pour ajouter un accès en lecture seule au stockage d’objets cloud qui contient des bibliothèques.

Remarque

Dans Databricks Runtime 12.2 LTS et versions antérieures, vous ne pouvez pas charger de bibliothèques JAR lors de l’utilisation de clusters avec des modes d’accès partagé. Dans Databricks Runtime 13.3 LTS et versions ultérieures, vous devez ajouter des bibliothèques JAR à la liste d’autorisation Unity Catalog. Consultez Bibliothèques de listes d’autorisation et scripts d’initialisation sur le calcul partagé.

Databricks recommande d’utiliser les principaux de service Microsoft Entra ID pour gérer l’accès aux bibliothèques stockées 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 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.

Installer des bibliothèques sur des clusters

Pour installer une bibliothèque stockée dans le stockage d’objets cloud sur un cluster, procédez comme suit :

  1. Sélectionnez un cluster dans la liste de l’interface utilisateur des clusters.
  2. Cliquez sur l’onglet Bibliothèques.
  3. Sélectionnez l’option Chemin d’accès au fichier/ADLS.
  4. Fournissez le chemin complet de l’URI de l’objet de bibliothèque (par exemple, abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Cliquez sur Installer.

Vous pouvez également installer des bibliothèques à l’aide de l’API REST ou de l’interface CLI.

Installer des bibliothèques sur des notebooks

Vous pouvez utiliser %pip pour installer des fichiers wheel Python personnalisés stockés dans un stockage d’objets limité à une session SparkSession isolée du notebook. Pour utiliser cette méthode, vous devez stocker des bibliothèques dans un stockage d’objets lisible publiquement ou utiliser une URL pré-signée.

Consultez Bibliothèques Python délimitées à un notebook.

Remarque

Vous ne pouvez pas installer de bibliothèques JAR dans le notebook. Vous devez installer les bibliothèques JAR au niveau du cluster.