Que sont les scripts init ?

Un script init (script d’initialisation) est un script shell qui s’exécute au démarrage de chaque nœud de cluster avant le démarrage du pilote Apache Spark ou de l’exécuteur d’une machine virtuelle Java (JVM). Cet article fournit des recommandations concernant les scripts init (scripts d’initialisation), ainsi que les informations de configuration de ces scripts, si vous devez les utiliser.

Recommandations pour les scripts init

Databricks recommande l’utilisation de fonctionnalités de plateforme intégrées plutôt que de scripts init, lorsque cela est possible. L’utilisation généralisée de scripts init peut ralentir la migration vers les nouvelles versions de Databricks Runtime et empêcher l’adoption de certaines optimisations Databricks.

Important

Si vous avez besoin de migrer à partir de scripts init sur DBFS, consultez Migrer des scripts init à partir de DBFS.

Les fonctionnalités Databricks suivantes traitent certains cas d’usage courants pour les scripts init :

Si vous devez utiliser des scripts init, suivez les conseils ci-dessous :

  • Gérez les scripts d'initialisation à l'aide de stratégies de calcul ou de scripts init à l’échelle du cluster, plutôt qu’avec des scripts d'initialisation globaux. Consultez Types de scripts d’initialisation.
  • Gérez l'installation de la bibliothèque pour les environnements de production et interactifs à l'aide de stratégies de calcul. N'installez pas de bibliothèques à l'aide de scripts d'initialisation.
  • Utilisez le mode d’accès partagé pour toutes les charges de travail. Utilisez uniquement le mode d’accès utilisateur unique si vos fonctionnalités requises ne sont pas prises en charge par le mode d’accès partagé.
  • Utilisez les nouvelles versions de Databricks Runtime et Unity Catalog pour toutes les charges de travail.

Le tableau suivant fournit des recommandations organisées en fonction de la version Databricks Runtime et de l’activation de Unity Catalog.

Environnement Recommandation
Databricks Runtime 13.3 LTS et version ultérieures avec Unity Catalog Stockez les scripts init dans des volumes Unity Catalog.
Databricks Runtime 11.3 LTS et versions ultérieures sans Unity Catalog Stockez les scripts init dans des fichiers d’espace de travail. (La taille maximale de fichier est de 500 Mo).
Databricks Runtime 10.4 LTS et versions antérieures Stockez les scripts init en utilisant le stockage d’objet cloud.

Quels types de scripts init Azure Databricks prend-il en charge ?

Azure Databricks prend en charge deux types de scripts d’initialisation : les scripts init à l’échelle du cluster et les scripts init globaux. Toutefois, l’utilisation de scripts init à l’échelle du cluster est recommandée.

  • Associé aux clusters de l’étendue : exécution sur chaque cluster configuré avec le script. Il s’agit de la méthode recommandée pour exécuter un script init. Consultez Utilisation de scripts d’initialisation pour les clusters présents dans l’étendue.
  • Globaux : s’exécutent sur tous les clusters de l’espace de travail configurés avec le mode d’accès mono-utilisateur ou le mode d’accès partagé sans isolation. Ces scripts init peuvent entraîner des problèmes inattendus, tels que des conflits de bibliothèque. Seuls les utilisateurs administrateurs d’espaces de travail peuvent créer des scripts init globaux. Consultez Utiliser des scripts init globaux.

Chaque fois que vous changez un type de script init, vous devez redémarrer tous les clusters impactés par le script.

Les scripts init globaux s’exécutent avant les scripts init à l’échelle du cluster.

Important

Les scripts init globaux et hérités nommés par cluster s’exécutent avant les autres scripts init. Ces scripts init sont en fin de vie, mais peuvent être présents dans les espaces de travail créés avant le 21 février 2023. Consultez Scripts init nommés par le cluster (hérités) et Scripts init globaux (hérités).

Où les scripts init peuvent-ils être installés ?

Vous pouvez stocker et configurer des scripts init à partir de fichiers d’espace de travail, de volumes Unity Catalog et d’espaces de stockage d’objets cloud. Cependant, les scripts init 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 init.

Le tableau suivant indique la prise en charge des scripts init en fonction de l’emplacement source et du mode d’accès au cluster. La version de Databricks Runtime répertoriée est la version minimale requise pour utiliser la combinaison. Pour en savoir plus sur les modes d’accès au cluster, consultez Modes d’accès.

Remarque

Le mode d’accès partagé nécessite l’ajout des scripts à une allowlist par un administrateur. Consultez Bibliothèques de listes d’autorisation et scripts d’initialisation sur le calcul partagé.

Mode d’accès partagé Mode d’accès unique Mode d’accès partagé sans isolation
Fichiers d’espace de travail Non pris en charge Toutes les versions de Databricks Runtime prises en charge Toutes les versions de Databricks Runtime prises en charge
Volumes 13.3 LTS 13.3 LTS Non pris en charge
Stockage dans le cloud 13.3 LTS Toutes les versions de Databricks Runtime prises en charge Toutes les versions de Databricks Runtime prises en charge

Migrer des scripts init à partir de DBFS

Avertissement

Les scripts Init sur DBFS ont atteint la fin de vie et ne peuvent plus être utilisés. Vous devez migrer vos scripts init vers un emplacement pris en charge avant de commencer le calcul. Stockez les scripts d’initialisation sur les volumes de Unity Catalog, en tant que fichiers d’espace de travail ou dans le stockage d’objets dans le nuage.

Les utilisateurs qui doivent migrer des scripts init à partir de DBFS peuvent utiliser les guides suivants. Vérifiez que vous avez identifié la cible correcte pour votre configuration. Consultez Recommandations pour les scripts init.