Installer des bibliothèques pour le calcul

Effectué

Lorsque vous exécutez des notebooks et des jobs sur la capacité de calcul Azure Databricks, vous avez souvent besoin de packages tiers ou de code personnalisé qui n'est pas inclus dans le runtime par défaut. L’installation de bibliothèques au niveau du cluster garantit que chaque bloc-notes et chaque travail utilisant ce calcul a accès aux mêmes dépendances, en créant un environnement d’exécution cohérent.

Comprendre comment installer efficacement les bibliothèques devient critique à mesure que vos flux de travail d’ingénierie des données augmentent en complexité. Vous devez savoir quelle méthode d’installation utiliser, où stocker les fichiers de bibliothèque et comment les modes d’accès affectent vos options.

Comprendre les bibliothèques à portée de capacité de calcul

Les bibliothèques à portée de capacité de calcul s'installent sur un cluster et deviennent disponibles pour tous les notebooks et jobs qui s'exécutent sur ce cluster. Contrairement aux bibliothèques limitées à un bloc-notes qui s’installent uniquement pour une session de bloc-notes spécifique, les bibliothèques à étendue de calcul persistent lors des redémarrages du cluster et fournissent un environnement partagé pour tous les utilisateurs.

Lorsque vous installez une bibliothèque au niveau du cluster, Azure Databricks le réinstalle automatiquement chaque fois que le cluster démarre. Ce comportement garantit la cohérence : vous n’avez pas besoin de réinstaller manuellement les dépendances après l’arrêt et le redémarrage d’un cluster. Tous les notebooks attachés au cluster peuvent importer et utiliser immédiatement les packages installés.

Note

Pour installer des bibliothèques sur un cluster, vous devez disposer de l’autorisation CAN MANAGE sur ce cluster. Cette autorisation vous permet de modifier la configuration du cluster, notamment l’ajout et la suppression de bibliothèques. Sans cette autorisation, vous ne pourrez pas accéder à l’interface d’installation de la bibliothèque.

Les bibliothèques à étendue de calcul prennent en charge les roues Python, les fichiers JAR Java et les packages R. Vous pouvez les installer à partir de référentiels de package tels que PyPI et Maven, ou à partir de fichiers stockés dans des fichiers d’espace de travail, des volumes catalogue Unity ou du stockage d’objets cloud. La méthode d’installation que vous choisissez dépend de votre type de bibliothèque, du mode d’accès au cluster et des exigences de sécurité organisationnelles.

Toutefois, les bibliothèques délimitées par le calcul ont une limitation importante : toute bibliothèque que vous installez affecte chaque bloc-notes sur le cluster. Si différentes équipes ont besoin de versions conflictuelles de la même bibliothèque, vous aurez besoin de clusters distincts ou d’installations délimitées par un notebook pour éviter les conflits.

Installer des bibliothèques à partir de référentiels de package

Les référentiels de packages fournissent le moyen le plus courant d’installer des bibliothèques. PyPI héberge des packages Python, Maven héberge des bibliothèques Java et Scala, et CRAN héberge des packages R. Ces référentiels gèrent automatiquement la résolution des dépendances et la gestion des versions.

Pour installer une bibliothèque à partir de PyPI, sélectionnez PyPI comme source de la bibliothèque et entrez le nom du package. Pour les charges de travail de production, spécifiez une version exacte pour garantir la reproductibilité : pymssql==2.3.9. Sans numéro de version, Azure Databricks installe la dernière version disponible, ce qui peut changer entre les installations et potentiellement interrompre votre code.

Capture d’écran de la boîte de dialogue Installer la bibliothèque Azure Databricks (PyPI).

Les bibliothèques Maven nécessitent des coordonnées au format groupId:artifactId:version. Par exemple, pour installer la bibliothèque Microsoft JDBC Driver pour SQL Server, vous devez utiliser com.microsoft.sqlserver:mssql-jdbc:13.2.1.jre11. Vous pouvez rechercher des packages directement dans la boîte de dialogue d’installation si vous ne connaissez pas les coordonnées exactes. Maven prend également en charge l’exclusion de dépendances transitives spécifiques qui peuvent entrer en conflit avec d’autres bibliothèques installées.

Capture d’écran de la boîte de dialogue Installer la bibliothèque Azure Databricks (Maven).

Pour les packages R de CRAN, indiquez le nom du package. Contrairement aux bibliothèques Python et Java, les installations CRAN extrayent toujours la dernière version à partir du miroir configuré. Pour épingler des versions spécifiques de packages R, vous devez stocker les fichiers de package dans les fichiers de l'espace de travail ou des volumes au lieu de les installer depuis CRAN.

Avec les clusters configurés en mode d’accès standard, les coordonnées Maven et les chemins de fichier JAR nécessitent allowlist une approbation avant l’installation. Cette mesure de sécurité garantit que les administrateurs examinent et approuvent les bibliothèques qui s’exécutent sur des ressources de calcul partagées.

Note

Pour en savoir plus sur la configuration et la gestion allowlists des bibliothèques, consultez la documentation.

Installer des bibliothèques à partir de fichiers

Le stockage des fichiers de bibliothèque dans des fichiers d’espace de travail ou des volumes catalogue Unity vous donne un contrôle précis sur les versions de bibliothèque utilisées par vos clusters. Cette approche fonctionne bien lorsque vous avez besoin de bibliothèques non disponibles dans des référentiels publics, de packages personnalisés que vous avez créés en interne ou de versions spécifiques qui ne sont plus disponibles à partir de référentiels de packages.

L’utilisation des fichiers d’espace de travail et des volumes du catalogue Unity pour l’installation de bibliothèques maintient une gestion centralisée, plutôt que de contourner les contrôles de sécurité avec des installations ad hoc telles que des commandes pip3 directes ou des scripts personnalisés non gérés exécutés à partir de notebooks. Les volumes catalogue Unity fournissent une gouvernance améliorée par le biais du modèle de contrôle d’accès du catalogue Unity, ce qui garantit que toutes les installations de bibliothèque sont suivies avec les journaux d’audit et protégées par des autorisations affinées.

Les fichiers d’espace de travail fournissent un emplacement pratique pour le stockage de bibliothèques avec une limite de taille de fichier de 500 Mo. Pour installer une bibliothèque à partir de fichiers d’espace de travail, chargez votre fichier wheel, JAR ou requirements.txt via la boîte de dialogue Importer de l’espace de travail, puis référencez-la pendant l’installation de la bibliothèque à l’aide d’un chemin d’accès tel que /Workspace/Users/you@example.com/libraries/mypackage-1.0.0-py3-none-any.whl.

Capture d’écran montrant où rechercher la boîte de dialogue Importer l’espace de travail.

Les volumes catalogue Unity offrent une sécurité et une gouvernance améliorées pour le stockage de bibliothèques. Vous contrôlez l’accès via les autorisations du catalogue Unity, ce qui garantit que seuls les utilisateurs autorisés peuvent lire ou modifier des fichiers de bibliothèque. Chargez des fichiers dans un volume via l’Explorateur de catalogues, puis installez-les à l’aide d’un chemin d’accès tel que /Volumes/main/engineering/libraries/mypackage-1.0.0-py3-none-any.whl. L’identité utilisée pour l’installation doit disposer de l’autorisation READ VOLUME sur le volume spécifié.

Capture d’écran montrant une bibliothèque chargée sur un volume dans le catalogue Unity.

Les fichiers Python requirements.txt fonctionnent à la fois avec les fichiers de l'espace de travail et les volumes dans Databricks Runtime 15.0 et versions ultérieures. Ces fichiers vous permettent de définir plusieurs dépendances de package dans un seul fichier, ce qui facilite la gestion des environnements cohérents entre les clusters. Chargez le fichier requirements.txt et installez-le comme n’importe quelle autre bibliothèque. Azure Databricks installe automatiquement tous les packages répertoriés.

Pour les clusters en mode d’accès standard, vous devez ajouter les chemins des fichiers de bibliothèque au allowlist avant l'installation. Cela s’applique aux fichiers et aux volumes de l’espace de travail, ce qui garantit que les administrateurs approuvent les bibliothèques utilisées sur le calcul partagé.

Utiliser des scripts init pour une configuration avancée

Les scripts Init exécutent des commandes shell pendant le démarrage du cluster, avant le démarrage du pilote Spark et des exécuteurs. Bien que Databricks ne recommande pas d’utiliser des scripts init pour l’installation de la bibliothèque , les bibliothèques étendues au cluster offrent une meilleure approche, les scripts init s’avèrent utiles pour la configuration au niveau du système que les bibliothèques ne peuvent pas gérer.

Vous pouvez utiliser des scripts init pour installer des packages système avec apt-get, configurer des variables d’environnement ou configurer des agents de surveillance. Par exemple, un script init peut installer un pilote de base de données spécialisé qui nécessite des bibliothèques système, puis configurer des paramètres de connexion via des variables d’environnement. Le script s’exécute chaque fois que le cluster démarre, ce qui garantit que votre configuration persiste entre les redémarrages.

Stockez des scripts init dans des volumes de catalogue Unity pour les clusters exécutant Databricks Runtime 13.3 LTS et versions ultérieures. Créez un fichier de script shell, chargez-le dans un volume, puis configurez le cluster pour exécuter le script en spécifiant son chemin d’accès comme /Volumes/main/engineering/scripts/setup.sh. Pour le mode d’accès standard, ajoutez le chemin du script init au allowlist avant de configurer le cluster.

Les scripts init s’exécutent séquentiellement dans l’ordre que vous spécifiez. Si un script retourne un code de sortie différent de zéro, le cluster ne parvient pas à démarrer. Cette protection contre les défaillances empêche l’exécution des clusters avec une configuration incomplète ou incorrecte. Vous pouvez résoudre les problèmes des scripts d'initialisation échoués en configurant la livraison des journaux du cluster et en examinant les journaux des scripts d'initialisation.

Considérez les scripts de démarrage comme un dernier recours pour les besoins de configuration que les bibliothèques à l'échelle du cluster et les politiques de cluster ne peuvent pas adresser. L’utilisation de stratégies de cluster pour définir des variables d’environnement et des configurations Spark fournit souvent une solution plus simple et plus facile à gérer que les scripts init.

Configurer des bibliothèques pour le mode d’accès standard

Les clusters configurés avec le mode d’accès standard offrent la sécurité et l’isolation les plus fortes dans Azure Databricks. Ce mode nécessite une approbation explicite pour les bibliothèques et les scripts init afin d’empêcher l’exécution de code non autorisée sur les ressources de calcul partagées.

Avant d’installer des bibliothèques Maven ou des fichiers JAR sur des clusters en mode d’accès standard, un administrateur de metastore doit les ajouter au allowlist. Les coordonnées Maven utilisent le allowlist avec le format groupId:artifactId:version. Vous pouvez allowlist toutes les versions d’une bibliothèque avec groupId:artifactId, ou tous les artefacts d’un groupe simplement avec groupId. Pour les fichiers JAR stockés dans des volumes ou un stockage d’objets, allowlist le chemin d’accès au fichier ou au répertoire.

Les scripts Init nécessitent des entrées distinctes allowlist , même si elles sont stockées dans le même emplacement que les fichiers JAR. Lors de l’ajout d’un chemin à la liste d’autorisation, Azure Databricks utilise une correspondance par préfixe : l’ajout de /Volumes/prod-libraries/ au allowlist, autorise tous les fichiers et sous-répertoires situés à cet emplacement. Incluez une barre oblique de fin pour éviter des correspondances de préfixe involontaires au niveau du répertoire.

La allowlist accorde uniquement l’autorisation d’utiliser un chemin pour l’installation de bibliothèques ou de scripts d’initialisation. Vous avez toujours besoin des autorisations d’accès aux données appropriées. Pour les volumes, l'identité du programme d'installation doit avoir l'autorisation READ VOLUME. Pour le mode d’accès standard, l’identité du propriétaire du cluster valide ces autorisations pendant l’installation de la bibliothèque.

Pour configurer le allowlist, les administrateurs de métastores utilisent l'Explorateur de catalogue en accédant aux paramètres du metastore et en entrant dans la section JARs autorisés/Scripts d'initialisation. Ce contrôle centralisé garantit que les équipes de sécurité peuvent examiner et approuver toutes les bibliothèques utilisées dans les ressources de calcul de l’organisation, en conservant la gouvernance sans bloquer la productivité.

Capture d’écran de la boîte de dialogue Ajouter des JARs autorisés / Scripts Init / Coordonnées de Maven.

Choisir la méthode d’installation appropriée

Différentes méthodes d’installation de bibliothèque répondent à différents scénarios. Le diagramme suivant illustre un flux de décision pour vous aider à sélectionner l’approche d’installation appropriée :

Diagramme montrant les différentes méthodes d’installation de bibliothèque.