Informations de référence sur la configuration du calcul
Cet article explique les paramètres de configuration disponibles dans l’interface utilisateur Créer un calcul. La plupart des utilisateurs créent des ressources de calcul à l’aide de leurs stratégies attribuées, ce qui limite les paramètres pouvant être configurés. Si un paramètre spécifique n’apparaît pas dans votre interface utilisateur, cela est dû au fait que la stratégie que vous avez sélectionnée ne vous permet pas de le configurer.
Les configurations et outils de gestion décrits dans cet article s’appliquent aussi bien au calcul à usage général qu’au calcul de travaux. Pour d’autres considérations relatives à la configuration d’une capacité de calcul de projet, consultez Configurer la capacité de calcul pour projets.
Pour créer une ressource de calcul à usage général :
- Dans la barre latérale de l’espace de travail, cliquez sur Calcul.
- Cliquez sur le bouton Créer un calcul.
- Configurez la ressource de calcul.
- Cliquez sur Créer un calcul.
La nouvelle ressource de calcul démarre automatiquement et est prête à être utilisée après quelques instants.
Les stratégies sont un ensemble de règles qui permettent de limiter les options de configuration à disposition des utilisateurs lorsqu’ils créent une ressource de calcul. Si un utilisateur ne dispose pas du droit de création de cluster sans restriction, il peut uniquement créer des ressources de calcul en utilisant les stratégies qui lui sont accordées.
Pour créer des ressources de calcul en fonction d’une stratégie, sélectionnez une stratégie dans le menu déroulant Stratégie.
Par défaut, tous les utilisateurs ont accès à la stratégie de calcul personnel, ce qui leur permet de créer des ressources de calcul sur une seule machine. Si vous avez besoin d’accéder à Personal Compute ou à des stratégies supplémentaires, contactez l’administrateur de votre espace de travail.
Selon la stratégie, vous pouvez choisir de créer une ressource de calcul mononœud ou multinœud.
Le calcul mononœud est destiné aux travaux qui utilisent de petites quantités de données ou des charges de travail non distribuées, telles que les bibliothèques de Machine Learning mononœuds. Le calcul multinœud doit être utilisé pour les travaux plus importants avec des charges de travail distribuées.
Une ressource de calcul mononœud a les propriétés suivantes :
- Il exécute Spark localement.
- Le pilote agit à la fois comme maître et worker, sans nœud worker.
- Il génère un thread d’exécuteur par cœur logique dans la ressource de calcul, moins un cœur pour le pilote.
- Enregistre toutes les sorties de journaux
stderr
,stdout
etlog4j
dans le journal du pilote. - Ne peut pas être converti en ressource de calcul multinœud.
Pour choisir entre un calcul à nœud unique et à plusieurs nœuds, tenez compte de votre cas d’utilisation :
Le traitement de données à grande échelle épuise les ressources sur une ressource de calcul à nœud unique. Pour ces charges de travail, Databricks recommande d’utiliser un calcul multinœud.
Un calcul à nœud unique n’est pas conçu pour être partagé. Pour éviter les conflits de ressources, Databricks recommande d’utiliser une ressource de calcul multinœud si le calcul doit être partagé.
Une ressource de calcul multinœud ne peut pas être mise à l’échelle à 0 Worker. Utilisez plutôt une ressource de calcul mononœud.
Un calcul à nœud unique n’est pas compatible avec l’isolation des processus.
La planification GPU n’est pas activée sur les calculs à nœud unique.
Sur un calcul à nœud unique, Spark ne peut pas lire les fichiers Parquet avec une colonne UDT. Le message d’erreur suivant s’affiche :
The Spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.
Pour contourner ce problème, désactivez le lecteur Parquet natif :
spark.conf.set("spark.databricks.io.parquet.nativeReader.enabled", False)
Le mode d’accès est une fonctionnalité de sécurité qui détermine qui peut utiliser la ressource de calcul et les données accessibles en utilisant la ressource de calcul. Chaque ressource de calcul dans Azure Databricks a un mode d’accès.
Databricks vous recommande d’utiliser le mode d’accès partagé pour toutes les charges de travail. Utilisez le mode d’accès utilisateur unique uniquement si vos fonctionnalités requises ne sont pas prises en charge par le mode d’accès partagé.
Mode d’accès | Visible par l'utilisateur | Prise en charge d’UC | Langues prises en charge | Notes |
---|---|---|---|---|
Utilisateur unique | Toujours | Oui | Python, SQL, Scala, R | Peut être attribué à et utilisé par un seul utilisateur. Appelé mode d’accès Affecté dans certains espaces de travail. |
Partagé | Toujours (Plan Premium requis) | Oui | Python (sur Databricks Runtime 11.3 LTS et versions ultérieures), SQL, Scala (sur un calcul avec Unity Catalog utilisant Databricks Runtime 13.3 LTS et versions ultérieures) | Peut être utilisé par plusieurs utilisateurs avec l’isolation des données entre les utilisateurs. |
Aucune isolation partagée | Les administrateurs peuvent masquer ce mode d’accès en appliquant l’isolation d’utilisateur dans la page des paramètres d’administration. | Non | Python, SQL, Scala, R | Il existe un paramètre associé au niveau du compte pour le calcul partagé sans isolation. |
Personnalisée | Masqué (pour tous les nouveaux calculs) | Non | Python, SQL, Scala, R | Cette option s’affiche uniquement si vous disposez d’une ressource de calcul existante dont le mode d’accès n’a pas été spécifié. |
Vous pouvez mettre à niveau une ressource de calcul existant pour qu’elle réponde aux exigences de Unity Catalog en définissant son mode d’accès sur Utilisateur unique ou Partagé. Pour plus d’informations sur les fonctionnalités prises en charge par chacun de ces modes d’accès dans les espaces de travail compatibles avec Unity Catalog, consultez Limitations du mode d’accès au calcul pour Unity Catalog.
Notes
Dans Databricks Runtime 13.3 LTS et versions ultérieures, les scripts d’initialisation et les bibliothèques sont pris en charge par tous les modes d’accès. Les exigences et les niveaux de support varient. Consultez Où peuvent être installés les scripts d’initialisation ? et Bibliothèques à l’échelle du cluster.
Databricks Runtime constitue l’ensemble des composants de base qui s’exécutent sur votre calcul. Sélectionnez le runtime à l’aide du menu déroulant Version de Databricks Runtime. Pour des informations détaillées sur les versions spécifiques de Databricks Runtime, consultez Notes de publication sur les versions et la compatibilité de Databricks Runtime. Toutes les versions incluent Apache Spark. Databricks recommande les éléments suivants :
- Pour les calculs à usage général, l’utilisation de la version la plus récente vous permet de bénéficier des dernières optimisations et de la compatibilité la plus à jour entre votre code et les packages préchargés.
- Pour un calcul de travaux exécutant des charges de travail opérationnelles, envisagez d’utiliser la version LTS (Long Term Support) de Databricks Runtime. L’utilisation de la version LTS permet de s’assurer que vous ne rencontrez pas de problèmes de compatibilité et que vous pouvez tester minutieusement votre charge de travail avant la mise à niveau.
- Pour les cas d’usage dans les domaines de la science des données et du Machine Learning, considérez la version ML de Databricks Runtime.
Photon est activé par défaut sur les calculs exécutant Databricks Runtime 9.1 LTS et versions ultérieures.
Pour activer ou désactiver l’accélération Photon, cochez la case Utiliser l’accélération Photon. Pour en savoir plus sur Photon, consultez Qu’est-ce que Photon ?.
Une ressource de calcul se compose d’un nœud de pilote et de zéro ou plusieurs nœuds Worker. Vous pouvez choisir des types d’instances de fournisseur de Cloud distincts pour les nœuds de pilote et de travail, bien que le nœud de pilote utilise par défaut le même type d’instance que le nœud Worker. Différentes familles de types d'instances correspondent à différents cas d'utilisation, tels que les charges de travail à forte intensité de mémoire ou de calcul.
Vous pouvez également sélectionner un pool à utiliser comme nœud worker ou pilote. Utilisez uniquement un pool avec des instances Spot en tant que votre type de Worker. Sélectionnez un type de pilote à la demande distinct pour empêcher que votre pilote soit récupéré. Consultez Se connecter aux pools.
Dans un calcul multinœud, les nœuds Worker exécutent les exécuteurs Spark et d’autres services requis pour le bon fonctionnement de la ressource de calcul. Lorsque vous distribuez votre charge de travail avec Spark, tout le traitement distribué se produit sur les nœuds Worker. Azure Databricks exécute un exécuteur par nœud Worker. Par conséquent, les termes exécuteur et Worker sont utilisés de manière interchangeable dans le contexte de l’architecture Azure Databricks.
Conseil
Pour exécuter un travail Spark, vous avez besoin d’au moins un nœud Worker. Si la ressource de calcul ne possède aucun Worker, vous pouvez exécuter des commandes non-Spark sur le nœud de pilote, mais les commandes Spark échouent.
Azure Databricks lance des nœuds Worker avec deux adresses IP privées chacune. L’adresse IP privée principale du nœud héberge le trafic interne Azure Databricks. L’adresse IP privée secondaire est utilisée par le conteneur Spark pour la communication intra-cluster. Ce modèle permet à Azure Databricks de fournir une isolation entre plusieurs ressources de calcul dans le même espace de travail.
Le nœud de pilote conserve les informations d’état de tous les notebooks attachés à la ressource de calcul. Le nœud de pilote gère également le SparkContext, interprète toutes les commandes que vous exécutez à partir d’un notebook ou d’une bibliothèque sur la ressource de calcul et exécute le maître Apache Spark qui se coordonne avec les exécuteurs Spark.
La valeur par défaut du type de nœud du pilote est identique à celle du type de nœud Worker. Vous pouvez choisir un plus grand type de nœud de pilote avec davantage de mémoire si vous envisagez collect()
de nombreuses données des Workers Spark et de les analyser dans le bloc-notes.
Conseil
Étant donné que le nœud pilote conserve toutes les informations d’état des blocs-notes attachés, veillez à détacher les blocs-notes inutilisés du nœud pilote.
Pour les tâches nécessitant de nombreuses ressources de calcul qui exigent des performances élevées, comme celles associées au Deep Learning, Azure Databricks prend en charge les ressources de calcul qui sont accélérées avec des processeurs graphiques (GPU). Pour plus d’informations, consultez Calcul avec GPU.
Les types de machines virtuelles d’informatique confidentielle Azure empêchent l’accès non autorisé aux données pendant leur utilisation, y compris à partir de l’opérateur cloud. Ce type de machine virtuelle est bénéfique pour les secteurs et les régions hautement réglementés, ainsi que pour les entreprises disposant de données sensibles dans le cloud. Pour obtenir davantage d’informations sur l’informatique confidentielle d’Azure, consultez Azure Confidential Computing.
Pour exécuter vos charges de travail à l’aide de machines virtuelles d’informatique confidentielle Azure, sélectionnez parmi les types de machines virtuelles de la série DC ou EC dans les listes déroulantes des nœuds Worker et Pilote. Consultez Options de la machine virtuelle Azure Confidential.
Pour réduire les coûts, vous pouvez choisir d’utiliser des instances de points, également appelées machines virtuelles Azure, en cochant la case instances de points .
La première instance est toujours à la demande (le nœud de pilote est toujours à la demande) et les instances suivantes sont des instances de place.
Si des instances sont évincées en raison d’une indisponibilité, Azure Databricks tente d’acquérir de nouvelles instances spot pour remplacer les instances évincées. Si des instances spot ne peuvent pas être acquises, des instances à la demande sont déployées pour remplacer les instances évincées. Cette restauration automatique à la demande est prise en charge uniquement pour les instances spot qui ont été entièrement acquises et qui sont en cours d’exécution. Les instances Spot qui échouent lors de l’installation ne sont pas remplacées automatiquement.
De plus, lorsque de nouveaux nœuds sont ajoutés aux ressources de calcul existantes, Azure Databricks tente d’acquérir des instances spot pour ces nœuds.
Lorsque l’option Activer la mise à l’échelle automatique est cochée, vous pouvez fournir un nombre minimal et un nombre maximal de Workers pour la ressource de calcul. Ensuite, Databricks détermine le nombre approprié de Workers nécessaires pour exécuter votre travail.
Pour définir le nombre minimal et le nombre maximal de Workers délimitant la mise à l’échelle automatique de votre ressource de calcul, utilisez les champs Nombre maximal de Workers et Nombre maximal de Workers en regard de la liste déroulante Type de Worker.
Si vous n’activez pas la mise à l’échelle automatique, vous devez entrer un nombre fixe de Workers dans le champ Workers en regard de la liste déroulante Type de Worker.
Notes
Lorsque la ressource de calcul est en cours d’exécution, la page de détails du calcul affiche le nombre de Workers alloués. Vous pouvez comparer le nombre de Workers alloués à la configuration du Worker et effectuer les ajustements nécessaires.
Avec la mise à l'échelle automatique, Azure Databricks réaffecte dynamiquement les workers pour tenir compte des caractéristiques de votre travail. Certaines parties de votre pipeline peuvent être plus exigeantes en termes de calcul que d’autres, et Databricks ajoute automatiquement des Workers supplémentaires pendant ces phases de votre travail (et les supprime lorsqu’ils ne sont plus nécessaires).
La mise à l’échelle automatique facilite une utilisation élevée, car vous n’avez pas besoin d’approvisionner le calcul pour correspondre à une charge de travail. Cela s’applique en particulier aux charges de travail dont les exigences changent au fil du temps (comme l’exploration d’un jeu de données au cours d’une journée), mais elle peut également s’appliquer à une charge de travail unique plus rapide dont les exigences de provisionnement sont inconnues. La mise à l’échelle automatique offre donc deux avantages :
- Les charges de travail peuvent s’exécuter plus rapidement qu’avec une ressource de calcul sous-approvisionné de taille constante.
- La mise à l’échelle automatique peut réduire les coûts globaux par rapport à une ressource de calcul de taille statique.
En fonction de la taille constante de la ressource de calcul et de la charge de travail, la mise à l’échelle automatique vous offre un de ces avantages ou les deux en même temps. La taille de calcul peut être inférieure au nombre minimal de Workers sélectionnés lorsque le fournisseur de cloud termine les instances. Dans ce cas, Azure Databricks tente continuellement de réapprovisionner les instances afin de conserver le nombre minimal de threads de travail.
Notes
La mise à l’échelle automatique n’est pas disponible pour les travaux spark-submit
.
Notes
La mise à l’échelle automatique du calcul présente des limitations pour la réduction de la taille du cluster pour les charges de travail Structured Streaming. Databricks recommande d’utiliser Delta Live Tables avec mise à l’échelle automatique améliorée pour les charges de travail de diffusion en continu. Consultez Optimiser l’utilisation du cluster des pipelines Delta Live Tables avec mise à l’échelle automatique améliorée.
L’espace de travail sur le plan Premium utilise la mise à l’échelle automatique optimisée. Les espaces de travail dans le plan tarifaire Standard utilisent la mise à l’échelle automatique standard.
La mise à l’échelle automatique optimisée présente les caractéristiques suivantes :
- La mise à l’échelle est comprise entre min et Max en 2 étapes.
- Peut effectuer un scale-down, même si la ressource de calcul n’est pas inactive, en examinant l’état de lecture aléatoire des fichiers.
- Met à l’échelle en fonction d’un pourcentage de nœuds actuels.
- Sur la ressource de calcul de travaux, effectue un scale-down si le calcul est sous-utilisé au cours des 40 dernières secondes.
- Sur le calcul à usage général, effectue un scale-down si la ressource de calcul est sous-utilisée au cours des 150 dernières secondes.
- La propriété de configuration Spark
spark.databricks.aggressiveWindowDownS
spécifie, en secondes, la fréquence à laquelle le calcul prend les décisions de scale-down. Si vous augmentez la valeur, le scale-down du calcul est plus lent. La valeur maximale est 600.
La mise à l’échelle automatique standard est utilisée dans les espaces de travail de plan Standard. La mise à l’échelle automatique standard présente les caractéristiques suivantes :
- Commence par ajouter 8 nœuds. Ensuite, elle effectue un scale-up exponentiel, en effectuant autant d’étapes que nécessaire pour atteindre le maximum.
- Effectue un scale-down lorsque 90 % des nœuds ne sont pas occupés pendant 10 minutes et que le calcul est inactif depuis au moins 30 secondes.
- Met à l’échelle de façon exponentielle, à partir de 1 nœud.
Si vous attachez votre ressource de calcul à un pool, tenez compte des points suivants :
Assurez-vous que la taille de calcul demandée est inférieure ou égale au nombre minimal d’instances inactives dans le pool. Si elle est supérieure, le temps de démarrage d’un calcul équivaut à celui d’un calcul qui n’utilise pas de pool.
Assurez-vous que la taille de calcul maximale est inférieure ou égale à la capacité maximale du pool. Si elle est supérieure, la création du calcul échoue.
Si vous reconfigurez une ressource de calcul statique pour la mise à l’échelle automatique, Azure Databricks redimensionne immédiatement la ressource de calcul dans les limites minimale et maximale, puis démarre la mise à l’échelle automatique. Par exemple, le tableau suivant montre ce qui arrive à une ressource de calcul avec une certaine taille initiale si vous la reconfigurez pour la mise à l’échelle automatique entre 5 et 10 nœuds.
Taille initiale | Taille après reconfiguration |
---|---|
6 | 6 |
12 | 10 |
3 | 5 |
Il est souvent difficile d'estimer l'espace disque que prendra une tâche particulière. Pour vous éviter d’avoir à estimer le nombre de gigaoctets de disque managé à attacher à votre calcul au moment de la création, Azure Databricks active automatiquement le stockage local à mise à l’échelle automatique sur tous les calculs Azure Databricks.
Grâce au stockage local à mise à l’échelle automatique, Azure Databricks surveille la quantité d’espace disque libre disponible sur les Workers Spark de votre calcul. Si un Worker commence à s’exécuter trop peu sur le disque, Databricks joint automatiquement un nouveau disque géré au Worker avant que l’espace disque soit insuffisant. Les disques sont attachés dans la limite de 5 To d’espace disque par machine virtuelle (y compris le stockage local initial de la machine virtuelle).
Les disques managés attachés à une machine virtuelle sont détachés uniquement quand la machine virtuelle est retournée à Azure. En d’autres termes, les disques managés ne sont jamais détachés d’une machine virtuelle tant qu’ils font partie d’un calcul en cours d’exécution. Pour effectuer un scale-down de l’utilisation des disques managés, Azure Databricks recommande de recourir à cette fonctionnalité dans un calcul configuré avec le calcul à mise à l’échelle automatique ou la terminaison automatique.
Important
Cette fonctionnalité est disponible en préversion publique.
Certains types d’instances que vous utilisez pour exécuter des calculs peuvent avoir des disques attachés localement. Azure Databricks pouvez stocker des données de lecture aléatoire ou des données éphémères sur ces disques attachés localement. Pour vous assurer que toutes les données au repos sont chiffrées pour tous les types de stockage, y compris les données aléatoires stockées temporairement sur les disques locaux de votre ressource de calcul, vous pouvez activer le chiffrement de disque local.
Important
Vos charges de travail peuvent s’exécuter plus lentement en raison de l’impact sur les performances de la lecture et de l’écriture de données chiffrées vers et à partir des volumes locaux.
Lorsque le chiffrement de disque local est activé, Azure Databricks génère une clé de chiffrement au niveau local qui est propre à chaque nœud de calcul et qui sert à chiffrer toutes les données stockées sur les disques locaux. L’étendue de la clé est locale pour chaque nœud de calcul et est détruite en même temps que le nœud de calcul. Pendant sa durée de vie, la clé se trouve dans la mémoire pour le chiffrement et le déchiffrement et est stockée chiffrée sur le disque.
Pour activer le chiffrement de disque local, vous devez utiliser l’API Clusters. Pendant la création ou de la modification d’un calcul, définissez enable_local_disk_encryption
sur true
.
Vous pouvez définir la terminaison automatique du calcul. Lors la création du calcul, spécifiez une période d’inactivité en minutes après laquelle vous voulez que la ressource de calcul se termine.
Si la différence entre l’heure actuelle et la dernière commande exécutée sur la ressource de calcul est supérieure à la période d’inactivité spécifiée, Azure Databricks termine automatiquement ce calcul. Pour plus d’informations sur la terminaison d’un calcul, consultez Terminer un calcul.
Les étiquettes vous permettent de monitorer facilement le coût des ressources cloud utilisées par différents groupes de votre organisation. Spécifiez des étiquettes sous forme de paires clé-valeur quand vous créez un calcul : Azure Databricks applique alors ces étiquettes aux ressources cloud, comme les machines virtuelles et les volumes de disque, ainsi qu’aux rapports d’utilisation des DBU.
Pour un calcul lancé à partir de pools, les étiquettes personnalisées sont appliquées uniquement aux rapports d’utilisation de DBU et ne se propagent pas aux ressources cloud.
Pour plus d’informations sur la manière dont les types d’étiquettes de pool et de calcul fonctionnent ensemble, consultez Superviser l’utilisation en utilisant des étiquettes.
Pour ajouter des étiquettes à votre ressource de calcul :
- Dans la section Étiquettes, ajoutez une paire clé-valeur pour chaque étiquette personnalisée.
- Cliquez sur Add.
Pour affiner les travaux Spark, vous pouvez fournir des propriétés de configuration Spark personnalisées.
Dans la page de configuration du calcul, cliquez sur le bouton bascule Options avancées.
Cliquez sur l’onglet Spark.
Dans la configuration Spark, entrez les propriétés de configuration sous la forme d’une paire clé-valeur par ligne.
Lorsque vous configurez un calcul à l’aide de l’API Clusters, définissez les propriétés Spark dans le champ spark_conf
de l’API de création de cluster ou de l’API de mise à jour de cluster.
Pour appliquer des configurations Spark sur un calcul, les administrateurs d’espace de travail peuvent utiliser des stratégies de calcul.
Databricks recommande de stocker des informations sensibles, telles que des mots de passe, dans un secret et non en texte clair. Pour référencer une clé secrète dans la configuration Spark, utilisez la syntaxe suivante :
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}
Par exemple, pour définir une propriété de configuration Spark appelée password
sur la valeur du secret stocké dans secrets/acme_app/password
:
spark.password {{secrets/acme-app/password}}
Pour plus d’informations, consultez Gérer les secrets.
Pour des raisons de sécurité, dans Azure Databricks le port SSH est fermé par défaut. Si vous souhaitez activer l’accès SSH à vos clusters Spark, consultez SSH to the driver node (Accès SSH au nœud de pilote).
Notes
SSH ne peut être activé que si votre espace de travail est déployé dans votre propre réseau virtuel Azure.
Configurez des variables d’environnement personnalisées auxquelles vous pouvez accéder depuis des scripts d’initialisation exécutés sur la ressource de calcul. Databricks fournit également des variables d’environnement prédéfinies que vous pouvez utiliser dans des scripts init. Vous ne pouvez pas remplacer ces variables d’environnement prédéfinies.
Dans la page de configuration du calcul, cliquez sur le bouton bascule Options avancées.
Cliquez sur l’onglet Spark .
Définissez les variables d’environnement dans le champ variables d’environnement .
Vous pouvez également définir des variables d’environnement à l’aide du champ spark_env_vars
dans l’API de création de cluster ou l’API de mise à jour de cluster.
Quand vous créez un calcul, vous pouvez spécifier un emplacement où sont remis les journaux du nœud du pilote Spark, des nœuds Worker et des événements. Les journaux sont remis toutes les cinq minutes et archivés toutes les heures dans la destination que vous avez choisie. Quand une ressource de calcul est terminée, Azure Databricks garantit la remise de tous les journaux générés jusqu’à la terminaison de la ressource de calcul.
La destination des journaux dépend du cluster_id
de la ressource de calcul. Si la destination spécifiée est dbfs:/cluster-log-delivery
, les journaux de calcul pour 0630-191345-leap375
sont remis à dbfs:/cluster-log-delivery/0630-191345-leap375
.
Pour configurer l’emplacement de remise des journaux :
- Dans la page du calcul, cliquez sur le bouton bascule Options avancées.
- Cliquez sur l'onglet Journalisation.
- Sélectionnez un type de destination.
- Entrez le chemin d’accès au journal de calcul.
Notes
Cette fonctionnalité est également disponible dans l’API REST. Consultez l’API Clusters.