Entrainement
Module
Optimiser les performances avec Spark et Delta Live Tables - Training
Optimiser les performances avec Spark et Delta Live Tables dans Azure Databricks.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet article décrit la façon dont gérer les calculs Azure Databricks, notamment l’affichage, la modification, le démarrage, l’arrêt, la suppression, le contrôle d’accès et la surveillance des performances et des journaux. Vous pouvez également utiliser l’API calculs pour gérer les calculs par programmation.
Pour afficher vos calculs, cliquez sur Calcul dans la barre latérale de l’espace de travail.
Deux colonnes à gauche indiquent si le calcul a été épinglé, ainsi que son état. Pointez le curseur sur l’état pour obtenir plus d’informations.
Parfois, il peut être utile d’afficher la configuration de votre calcul au format JSON. Cela s’avère particulièrement utile lorsque vous souhaitez créer des calculs similaires à l’aide de l’API de calculs. Lorsque vous affichez un calcul existant, accédez à l’onglet Configuration, cliquez sur JSON en haut à droite de l’onglet, copiez le fichier JSON, puis collez-le dans votre appel d’API. La vue du JSON est en lecture seule.
Le calcul est définitivement supprimé 30 jours après son arrêt. Un administrateur peut épingler le calcul pour conserver une configuration de calcul à usage général après l’arrêt d’un calcul depuis plus de 30 jours. Jusqu’à 100 ressources de calcul peuvent être épinglées.
Les administrateurs peuvent épingler un calcul depuis la liste des calculs ou de la page des détails du calcul en cliquant sur l’icône d’épingle.
Vous pouvez modifier une configuration de calcul à partir de l’IU des détails du calcul.
Notes
Pour cloner un calcul existant, sélectionnez Cloner dans le menu kebab du calcul.
Une fois l’option Cloner sélectionnée, l’IU de création de calcul s’ouvre avec la configuration de calcul préremplie. Les attributs suivants NE sont PAS inclus dans le clone :
Si vous souhaitez ne pas inclure les bibliothèques précédemment installées dans le calcul cloné, cliquez sur le menu déroulant en regard du bouton Créer un calcul et sélectionnez Créer sans bibliothèques.
Il existe quatre niveaux d’autorisation pour un calcul : NO PERMISSIONS, CAN ATTACH TO, CAN RESTART, et CAN MANAGE. Pour plus d’informations, consultez Listes de contrôle d’accès au calcul.
Notes
Les secrets ne sont pas expurgés des flux stdout
et stderr
du journal du pilote Spark d’un cluster. Pour protéger des données sensibles, les journaux de pilote Spark sont affichables par défaut uniquement par des utilisateurs ayant une autorisation PEUT GÉRER sur un travail, un mode d’accès utilisateur unique et des clusters en mode d’accès partagé. Pour autoriser des utilisateurs avec l’autorisation PEUT ATTACHER À ou PEUT REDÉMARRER à afficher les journaux sur ces clusters, définissez la propriété de configuration Spark suivante dans la configuration de cluster : spark.databricks.acl.needAdminPermissionToViewLogs false
.
Sur des clusters en mode d’accès Aucune isolation partagée, les utilisateurs peuvent afficher des journaux de pilote Spark avec l’autorisation PEUT ATTACHER À ou PEUT GÉRER. Pour limiter les utilisateurs qui peuvent lire les journaux aux seuls utilisateurs avec l’autorisation PEUT GÉRER, définissez spark.databricks.acl.needAdminPermissionToViewLogs
sur true
.
Consultez Configuration Spark pour découvrir comment ajouter des propriétés Spark à une configuration de cluster.
Cette section explique comment gérer les autorisations à l’aide de l’IU de l’espace de travail. Vous pouvez également utiliser les API relatives aux autorisations ou le fournisseur Databricks Terraform.
Vous devez disposer de l’autorisation CAN MANAGE sur un calcul pour configurer les autorisations de calcul.
Pour enregistrer des ressources de calcul, vous pouvez arrêter un calcul. La configuration du calcul terminé est stockée afin qu’elle puisse être ultérieurement réutilisée (ou, dans le cas de tâches, automatiquement démarrée). Vous pouvez arrêter un calcul manuellement ou bien le configurer pour qu’il s’arrête automatiquement après une période d’inactivité spécifiée. Lorsque le nombre de calculs terminés dépasse 150, le calcul le plus ancien est supprimé.
À moins qu’un calcul ne soit épinglé ou redémarré, il est automatiquement et définitivement supprimé 30 jours après son arrêt.
Les calculs arrêtés apparaissent dans la liste des calculs avec un cercle gris à gauche du nom du calcul.
Notes
Lorsque vous exécutez un travail sur un nouveau calcul de travail (ce qui est généralement recommandé), le calcul s’arrête et ne peut pas être redémarré lorsque le travail est terminé. D’autre part, si vous planifiez l’exécution d’un travail sur un calcul à usage général existant qui a été arrêté, ce calcul démarre automatiquement.
Important
Si vous utilisez une Espace de travail d’essai Premium, toutes les ressources du calcul en cours d’exécution sont arrêtées :
Vous pouvez terminer manuellement un calcul à partir de la liste des calculs (en cliquant sur le carré de la ligne du calcul) ou de la page des détails du calcul (en cliquant sur Terminer).
Vous pouvez également définir un arrêt automatique pour un calcul. Pendant la création du calcul, vous pouvez spécifier une période d’inactivité en minutes après laquelle vous souhaitez que le calcul se termine.
Si la différence entre l’heure actuelle et la dernière commande exécutée sur le calcul est supérieure à la période d’inactivité spécifiée, Azure Databricks termine automatiquement ce calcul.
Un calcul est considéré comme inactif lorsque toutes les commandes du calcul, y compris les travaux Spark, Structured Streaming et les appels JDBC, ont terminé leur exécution.
Avertissement
Vous pouvez configurer l’arrêt automatique dans l’interface utilisateur d’un nouveau calcul. Vérifiez que la case est cochée et saisissez un nombre de minutes dans le paramètre Terminer après ___ minutes d’inactivité.
Vous pouvez refuser l’arrêt automatique en décochant la case Arrêt automatique ou en spécifiant une période d’inactivité de 0
.
Notes
L’arrêt automatique est mieux pris en charge dans les dernières versions Spark. Les anciennes versions Spark présentent des limitations connues qui peuvent entraîner des rapports inexacts sur l’activité du calcul. Par exemple, les calculs qui exécutent des commandes JDBC, R ou streaming peuvent signaler un temps d’activité obsolète entraînant l’arrêt prématuré du calcul. Effectuez une mise à niveau vers la version la plus récente de Spark pour profiter au maximum des correctifs de bogues et des améliorations de l’arrêt automatique.
Parfois, un calcul est arrêté de manière inattendue, et non à la suite d’un arrêt manuel ou d’un arrêt automatique configuré.
Pour obtenir la liste des raisons d’arrêt et des étapes de correction, consultez la Base de connaissances.
La suppression d’un calcul arrête le calcul et supprime sa configuration. Pour supprimer un calcul, sélectionnez Supprimer dans le menu de calcul.
Avertissement
Vous ne pouvez pas annuler cette action.
Un calcul épinglé doit d’abord être détaché par un administrateur pour être supprimé.
Vous pouvez également appeler le point de terminaison de l’API calculs pour supprimer un calcul de manière programmatique.
Vous pouvez redémarrer un calcul précédemment terminé à partir de la liste des calculs, de la page des détails du calcul ou d’un notebook. Vous pouvez également appeler le point de terminaison de l’API calculs pour démarrer un calcul de manière programmatique.
Azure Databricks identifie un calcul à l’aide de son ID de calcul unique. Lorsque vous démarrez un calcul terminé, Databricks recrée le calcul avec le même identifiant, installe automatiquement toutes les bibliothèques et rattache les notebooks.
Notes
Si vous utilisez un Espace de travail d’essai gratuit et que la période d’essai a expiré, vous ne pouvez pas démarrer un calcul.
Lorsque vous redémarrez un calcul, celui-ci obtient les dernières images pour les conteneurs de ressources de calcul et les hôtes de machines virtuelles. Il est important de planifier des redémarrages réguliers pour des calculs de longue durée, tels que ceux utilisés pour le traitement de données de diffusion en continu.
Il vous incombe de redémarrer régulièrement toutes les ressources de calcul pour maintenir l’image à jour avec sa dernière version.
Important
Si vous activez le profil de sécurité et de conformité pour votre compte ou votre espace de travail, le calcul de longue durée est automatiquement redémarré selon les besoins pendant une fenêtre de maintenance planifiée. Cela réduit le risque d’interruption d’un travail planifié par un redémarrage automatique. Vous pouvez également forcer le redémarrage durant la fenêtre de maintenance. Consultez Mise à jour automatique de clusters.
Si vous êtes un administrateur d’espaces de travail, vous pouvez exécuter un script déterminant la durée d’exécution de chacun de vos calculs, et éventuellement les redémarrer s’ils ont dépassé un nombre spécifié de jours d’exécution. Azure Databricks fournit ce script en tant que notebook.
Les premières lignes du script définissent des paramètres de configuration :
min_age_output
: nombre maximal de jours d’exécution d’un calcul. La valeur par défaut de est 1.perform_restart
: Si True
, le script redémarre tout calcul dont le nombre de jours d’exécution est supérieur au nombre de jours spécifié par min_age_output
. La valeur par défautFalse
identifie les calculs de longue durée mais ne les redémarre pas.secret_configuration
: remplacez REPLACE_WITH_SCOPE
et REPLACE_WITH_KEY
par une étendue de secrets et un nom de clé. Pour plus d’informations sur la configuration des secrets, consultez le notebook.Avertissement
Si vous définissez perform_restart
sur True
, le script redémarre automatiquement les calculs éligibles, ce qui peut entraîner l’échec de travaux actifs et la réinitialisation de notebooks ouverts. Pour réduire le risque de perturber les travaux vitaux de votre espace de travail, planifiez une fenêtre de maintenance et veillez à en informer les utilisateurs de l’espace de travail.
Lorsqu’un travail attribué à un calcul terminé existant est planifié pour s’exécuter ou que vous vous connectez à un calcul terminé à partir d’une interface JDBC/ODBC, le calcul est redémarré automatiquement. Consultez Configurer la capacité de calcul pour les projets et Connecter JDBC.
Le démarrage automatique de calculs vous permet de configurer l’arrêt automatique de calculs, sans nécessiter une intervention manuelle pour redémarrer les calculs pour des travaux planifiés. En outre, vous pouvez planifier l’initialisation du calcul en planifiant l’exécution d’un travail sur un calcul arrêté.
Avant qu’un calcul ne soit redémarré automatiquement, les autorisations de contrôle d’accès du calcul et du travail sont vérifiées.
Notes
Si votre calcul a été créé sur la plateforme Azure Databricks version 2.70 ou antérieure, il n’existe pas de démarrage automatique : les travaux planifiés pour s’exécuter sur les calculs arrêtés échoueront.
Vous pouvez afficher des informations détaillées sur les tâches Spark en sélectionnant l’onglet IU Spark dans la page de détails du calcul.
Si vous redémarrez un calcul terminé, l’interface utilisateur Spark affiche des informations sur le calcul redémarré, pas des informations d’historique pour le calcul arrêté.
Consultez Diagnostiquer des problèmes de coût et de performances à l’aide de l’interface utilisateur Spark pour diagnostiquer les problèmes de coûts et de performances en utilisant l’interface utilisateur Spark.
Azure Databricks fournit trois types de journalisation de l’activité liée aux calculs :
Cette section décrit les journaux des événements de calcul et les journaux des pilotes et des Worker. Pour plus d’informations sur les journaux init-script, consultez Journalisation des scripts d’initialisation.
Le journal des événements de calcul affiche les événements importants du cycle de vie du calcul qui sont déclenchés manuellement par des actions utilisateur ou automatiquement par Azure Databricks. Ces événements affectent le fonctionnement du calcul dans son ensemble et les travaux en cours d’exécution dans le calcul.
Pour plus d’informations sur les types d’événements pris en charge, consultez la structure de données de l’API de Clusters.
Les événements sont stockés pendant 60 jours, ce qui est comparable à d’autres durées de conservation des données dans Azure Databricks.
Si vous souhaitez afficher le journal des événements du calcul, sélectionnez l’onglet Journal des événements dans les pages des détails du calcul.
Pour obtenir plus d’informations sur un événement, cliquez sur sa ligne dans le journal, puis sur l’onglet JSON pour afficher plus de détails.
Les instructions directes d’impression et de journal de vos notebooks, travaux et bibliothèques sont dirigées vers les journaux des pilotes Spark. Vous pouvez accéder à ces fichiers à partir de l’onglet Journaux du pilote dans la page de détails du calcul. Cliquez sur le nom d’un fichier journal pour le télécharger.
Ces journaux ont trois sorties :
Pour afficher les journaux des Worker Spark, utilisez l’onglet de l’interface utilisateur Spark. Vous pouvez également configurer un emplacement de remise des journaux pour le calcul. Les journaux de Worker et de calcul sont remis à l’emplacement que vous spécifiez.
Pour vous aider à surveiller les performances des calculs Azure Databricks, cette dernière permet d’accéder aux métriques à partir de la page des détails du calcul. Azure Databricks fournit l’accès aux métriques Ganglia pour Databricks Runtime 12.2 et ses versions antérieures. Les métriques de calcul sont fournies par Azure Databricks pour Databricks Runtime 13.3 LTS (et les versions ultérieures).
En outre, vous pouvez configurer un calcul Azure Databricks pour envoyer des métriques à un espace de travail Log Analytics dans Azure Monitor, la plateforme de monitoring pour Azure.
Vous pouvez également installer des agents Datadog sur des nœuds de calcul pour envoyer des métriques Datadog à votre compte Datadog.
Les métriques de calcul sont l’outil de surveillance par défaut pour le calcul à usage unique non serverless et le calcul de travaux. Pour accéder à l’IU des métriques de calcul, accédez à l’onglet Métriques sur la page des détails du calcul.
Vous pouvez afficher les métriques historiques en sélectionnant une plage de temps à l’aide du filtre du sélecteur de dates. Les métriques sont collectées toutes les minutes. Vous pouvez également obtenir les dernières métriques en cliquant sur le bouton Actualiser. Pour plus d’informations, consultez Afficher les métriques de calcul.
Notes
Les métriques Ganglia sont disponibles uniquement pour Databricks Runtime 12.2 et ses versions antérieures.
Pour accéder à l’interface utilisateur Ganglia, accédez à l’onglet Métriques de la page de détails du calcul et activez le paramètre Métriques héritées. Les métriques GPU sont disponibles pour les calculs compatibles GPU.
Pour afficher les métriques en temps réel, cliquez sur le lien de l’interface utilisateur Ganglia.
Pour afficher l’historique des métriques, cliquez sur un fichier de capture instantanée. La capture instantanée contient des métriques agrégées pour l’heure précédant l’heure sélectionnée.
Notes
Ganglia n’est pas prise en charge avec les conteneurs Docker. Les métriques Ganglia ne sont pas disponibles si vous utilisez un conteneur Docker avec votre calcul.
Par défaut, Azure Databricks collecte les métriques Ganglia toutes les 15 minutes. Pour configurer la période de collecte, définissez la variable d’environnement DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES
à l’aide d’un script d’initialisation ou dans le champ spark_env_vars
de l’API Création d’un cluster.
Vous pouvez configurer un calcul Azure Databricks pour envoyer des métriques à un espace de travail Log Analytics dans Azure Monitor, la plateforme de monitoring pour Azure. Pour obtenir des instructions complètes, consultez Monitoring de Azure Databricks.
Notes
Si vous avez déployé l’espace de travail Azure Databricks dans votre propre réseau virtuel et que vous avez configuré des groupes de sécurité réseau (NSG) pour refuser tout le trafic sortant qui n’est pas requis par Azure Databricks, vous devez configurer une règle de trafic sortant supplémentaire pour l’étiquette de service « AzureMonitor ».
Vous pouvez installer des agents Datadog sur des nœuds de calcul pour envoyer des métriques Datadog à votre compte Datadog. Le notebook suivant montre comment installer un agent Datadog sur un calcul à l’aide d’un script d’initialisation à l’échelle du calcul.
Pour installer l’agent Datadog sur tous les calculs, gérez le script d’initialisation de l’étendue du calcul à l’aide d’une stratégie de calcul.
Étant donné que les instances ponctuelles peuvent réduire les coûts, la création de calculs à l’aide d’instances ponctuelles plutôt que d’instances à la demande est un moyen courant d’exécuter des travaux. Toutefois, les instances Spot peuvent être reportées par les mécanismes de planification du fournisseur de Cloud. La report des instances Spot peut entraîner des problèmes avec les travaux en cours d’exécution, notamment :
Vous pouvez activer la mise hors service pour aider à résoudre ces problèmes. La mise hors service tire parti de la notification que le fournisseur de Cloud envoie généralement avant qu’une instance Spot soit retirée. Lorsqu’une instance Spot contenant un exécuteur reçoit une notification de report, le processus de mise hors service tente de migrer les données de lecture aléatoire et RDD vers des exécuteurs sains. La durée avant le report final est généralement de 30 secondes à 2 minutes en fonction du fournisseur de Cloud.
Databricks recommande l’activation de la migration des données lorsque la mise hors service est également activée. En règle générale, le risque d’erreurs diminue au fur et à mesure que les données sont migrées, y compris les défaillances de récupération (fetch) de données de lecture aléatoire, la perte de données de lecture aléatoire et la perte de données RDD. La migration des données peut également entraîner moins de recalcul et réduire les coûts.
Notes
La désaffectation est le meilleur effort et elle ne garantit pas que toutes les données peuvent être migrées avant une préemption finale. La mise hors service ne peut pas garantir l’arrêt des défaillances de récupération (fetch) de données de lecture aléatoire lorsque des tâches en cours d’exécution récupèrent des données aléatoires à partir de l’exécuteur.
Lorsque la mise hors service est activée, les échecs de tâches dus au report d’une instance Spot ne sont pas ajoutés au nombre total de tentatives ayant échoué. Les échecs de tâches provoqués par le report ne sont pas comptabilisés comme des tentatives ayant échoué, car la cause de l’échec est externe à la tâche et n’entraîne pas d’échec de la tâche.
Pour activer la désaffectation sur un calcul, saisissez les propriétés suivantes dans l’onglet Spark sous Options avancées dans l’IU de configuration du calcul. Pour plus d’informations sur ces propriétés, consultez configuration Spark.
Pour activer la désaffectation pour les applications, saisissez cette propriété dans le champ de configuration Spark :
spark.decommission.enabled true
Pour activer la migration aléatoire des données pendant la désaffectation, saisissez cette propriété dans le champ de configuration Spark :
spark.storage.decommission.enabled true
spark.storage.decommission.shuffleBlocks.enabled true
Pour activer la migration des données de cache RDD pendant la désaffectation, saisissez cette propriété dans le champ de configuration Spark :
spark.storage.decommission.enabled true
spark.storage.decommission.rddBlocks.enabled true
Notes
Lorsque la réplication RDD StorageLevel est définie sur une valeur supérieure à 1, Databricks ne recommande pas l’activation de la migration des données RDD puisque les réplicas garantissent que les RDD ne perdront pas de données.
Pour activer la désaffectation des workers, saisissez cette propriété dans le champ Variables d’environnement :
SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
Pour accéder à l’état de désaffectation d’un worker depuis l’IU, accédez à l’onglet IU du calcul Spark – Master.
Une fois la désaffectation terminée, vous pouvez afficher la raison de la perte de l’exécuteur dans l’onglet Exécuteurs de > l’IU Spark sur la page des détails du calcul.
Entrainement
Module
Optimiser les performances avec Spark et Delta Live Tables - Training
Optimiser les performances avec Spark et Delta Live Tables dans Azure Databricks.