Aller au contenu principal

Que sont les scripts d'initialisation ?

Un script d'initialisation (init script) est un script Shell qui s'exécute lors du Startup de chaque nœud de cluster avant le start de la JVM du Driver ou de l'exécuteur Apache Spark. Cet article fournit des recommandations pour les scripts d'initialisation et des informations de configuration si vous devez les utiliser.

Recommandations pour les scripts d'initialisation

Databricks recommande d'utiliser les fonctionnalités de plateforme intégrées au lieu des scripts d'initialisation, dans la mesure du possible. L'utilisation généralisée des scripts d'initialisation peut ralentir la migration vers de nouvelles versions de Databricks Runtime et empêcher l'adoption de certaines optimisations Databricks.

important

Si vous devez migrer des scripts d’initialisation sur DBFS, consultez Migrer des scripts d’initialisation de DBFS.

Les fonctionnalités Databricks suivantes répondent à certains des cas d'utilisation courants des scripts d'initialisation :

Si vous devez utiliser des scripts d'initialisation :

  • Gérez les scripts d'initialisation à l'aide de stratégies de compute ou de scripts d'initialisation à l'échelle du cluster plutôt que de scripts d'initialisation globaux. Consultez les types de script d'initialisation.
  • Gérez l’installation des bibliothèques pour les environnements de production et interactifs à l’aide des politiques de compute. N'installez pas de bibliothèques à l'aide de scripts d'initialisation. Consultez les politiques de compute.
  • Lorsque vous utilisez un script d'initialisation pour installer les packages du système d'exploitation avec un gestionnaire de packages tel que apt-get, pin des versions de package spécifiques (par exemple, apt-get install <package>=<version>). Épingler les versions permet de maintenir les environnements de clusters reproductibles et d'éviter les modifications inattendues.
  • Utilisez le mode d'accès standard (anciennement mode d'accès partagé) pour toutes les charges de travail. N'utilisez le mode d'accès dédié (anciennement mode d'accès mono-utilisateur) que si la fonctionnalité requise n'est pas prise en charge par le mode d'accès standard.
  • Utilisez les nouvelles versions de Databricks Runtime et Unity Catalog pour toutes les charges de travail.

Le tableau suivant fournit des recommandations organisées par version de Databricks Runtime et activation d’Unity Catalog.

Environnement

Recommandation

Databricks Runtime 13.3 LTS et versions ultérieures avec Unity Catalog

Stockez les scripts init dans les volumes Unity Catalog.

Databricks Runtime 11,3 LTS et supérieur sans Unity Catalog

Stockez les scripts d'initialisation en tant que fichiers de Workspace. (La taille maximale du fichier est de 500 Mo.)

Databricks Runtime 10.4 LTS et versions antérieures

Stockez les scripts d'initialisation à l'aide du stockage d'objets cloud.

Environnement

Recommandation

Databricks Runtime 13.3 LTS et versions ultérieures avec Unity Catalog

Stockez les scripts init dans les volumes Unity Catalog.

Databricks Runtime 11,3 LTS et supérieur sans Unity Catalog

Stockez les scripts d'initialisation en tant que fichiers de Workspace. (La taille maximale du fichier est de 500 Mo.)

Databricks Runtime 10.4 LTS et versions antérieures

Stockez les scripts d'initialisation à l'aide du stockage d'objets cloud.

Quels types de scripts d'initialisation Databricks prend-il en charge ?

Databricks prend en charge deux types de scripts d'initialisation : à l'échelle du cluster et globaux, mais il est recommandé d'utiliser des scripts d'initialisation à l'échelle du cluster.

  • En cluster : exécuté sur chaque cluster configuré avec le script. C'est la méthode recommandée pour exécuter un script d'initialisation. Voir scripts d'initialisation en cluster.
  • Global : s'exécute sur tous les clusters du Workspace configurés en mode d'accès dédié ou en mode d'accès partagé sans isolation. Ces scripts d'initialisation peuvent causer des problèmes inattendus, tels que des conflits de bibliothèques. Seuls les utilisateurs administrateurs du Workspace peuvent créer des scripts d'initialisation globaux. Consultez les scripts d'initialisation globaux.

Chaque fois que vous modifiez un type de script d'initialisation, vous devez redémarrer tous les clusters affectés par le script.

Les scripts d'initialisation globaux s'exécutent avant les scripts d'initialisation au niveau du cluster.

important

Les scripts d'initialisation globaux hérités et les scripts d'initialisation nommés par cluster hérités s'exécutent avant les autres scripts d'initialisation. Ces scripts d'initialisation sont en fin de vie, mais peuvent être présents dans les Workspace créés avant le 21 février 2023. Voir scripts d'initialisation nommés par cluster (hérités) et scripts d'initialisation globaux (hérités).

Où les scripts d'initialisation peuvent-ils être installés ?

Vous pouvez stocker et configurer des scripts d'initialisation à partir de fichiers Workspace, de volumes Unity Catalog et de stockage d'objets cloud, mais les scripts d'initialisation ne sont pas pris en charge sur toutes les configurations de cluster et tous les fichiers ne peuvent pas être référencés à partir de scripts d'initialisation. Pour les recommandations d'environnement pour les scripts d'initialisation, consultez Recommandations pour les scripts d'initialisation.

Le tableau suivant indique la prise en charge des scripts d'initialisation en fonction de l'emplacement source et du mode d'accès au cluster. La version du Databricks Runtime indiquée est la version minimale requise pour utiliser la combinaison. Pour des informations sur les modes d'accès aux clusters, consultez Modes d'accès.

remarque

Le mode d'accès standard nécessite qu'un administrateur ajoute des scripts d'initialisation à un allowlist. Consultez Mettre les bibliothèques et les scripts d'initialisation sur liste d'autorisation sur le compute avec le mode d'accès standard (anciennement mode d'accès partagé).

Mode d'accès standard

Mode d'accès unique

Mode d'accès « Aucune isolation partagée »

Fichiers du workspace

Non pris en charge

Toutes les versions de Databricks Runtime prises en charge.

Sur les versions inférieures à 11.3 LTS, les scripts d'initialisation qui référencent d'autres fichiers de Workspace ne sont pas pris en charge.

Toutes les versions de Databricks Runtime prises en charge.

Volumes

13.3 LTS et versions ultérieures

13.3 LTS et versions ultérieures

Non pris en charge

Stockage cloud

13.3 LTS et versions ultérieures

Toutes les versions de Databricks Runtime prises en charge

Toutes les versions de Databricks Runtime prises en charge

Mode d'accès standard

Mode d'accès unique

Mode d'accès « Aucune isolation partagée »

Fichiers du workspace

Non pris en charge

Toutes les versions de Databricks Runtime prises en charge.

Sur les versions inférieures à 11.3 LTS, les scripts d'initialisation qui référencent d'autres fichiers de Workspace ne sont pas pris en charge.

Toutes les versions de Databricks Runtime prises en charge.

Volumes

13.3 LTS et versions ultérieures

13.3 LTS et versions ultérieures

Non pris en charge

Stockage cloud

13.3 LTS et versions ultérieures

Toutes les versions de Databricks Runtime prises en charge

Toutes les versions de Databricks Runtime prises en charge

Migrer les scripts d'initialisation de DBFS

attention

Les scripts d'initialisation sur DBFS ont atteint leur fin de vie et ne peuvent plus être utilisés. Vous devez migrer vos scripts d'initialisation vers un emplacement pris en charge avant de pouvoir start le compute. Stockez les scripts d'initialisation sur les volumes Unity Catalog, en tant que fichiers de workspace ou dans le stockage d'objets cloud.

Les utilisateurs qui doivent migrer des scripts d’initialisation de DBFS peuvent utiliser les guides suivants. Assurez-vous d’avoir identifié la cible correcte pour votre configuration. Consultez les recommandations pour les scripts d'initialisation.