Gérer le calcul

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.

Voir le calcul

Pour afficher vos calculs, cliquez sur l'icône de calculCalcul 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.

Afficher la configuration du calcul sous forme de fichier JSON

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.

Épingler un calcul

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.

Modifier un calcul

Vous pouvez modifier une configuration de calcul à partir de l’IU des détails du calcul.

Remarque

  • Les notebooks et les travaux qui étaient attachés au calcul restent attachés après modification.
  • Les bibliothèques installées sur le calcul restent installées après modification.
  • Si vous modifiez un attribut d’un calcul en cours d’exécution (à l’exception de la taille et des autorisations du calcul), vous devez le redémarrer. Cela peut perturber les utilisateurs qui utilisent actuellement le calcul.
  • Vous pouvez uniquement modifier des calculs en cours d’exécution ou arrêtés. Toutefois, vous pouvez mettre à jour des autorisations de calculs ne se trouvent pas dans ces états sur la page des détails du calcul.

Cloner un calcul

Pour cloner un calcul existant, sélectionnez Cloner dans le menu Menu kebabkebab du calcul (également connu sous le nom de menu à trois points).

Une fois que vous avez sélectionné la fonction de clonage, l’IU de création de calcul s’ouvre avec la configuration du calcul préremplie. Les attributs suivants ne sont pas inclus dans le clone :

  • Autorisations de calcul
  • Bibliothèques installées
  • Notebooks attachés

Autorisations de calcul

Il existe quatre niveaux d’autorisation pour un calcul : NO PERMISSIONS, CAN ATTACH TO, CAN RESTART, et CAN MANAGE. Ce tableau répertorie les capacités associées à chaque autorisation.

Important

Les utilisateurs disposant de l’autorisation de PEUT ATTACHER À peuvent afficher les clés de compte de service dans le fichier log4j. Soyez vigilant lorsque vous accordez ce niveau d’autorisation.

Possibilité AUCUNE AUTORISATION PEUT ATTACHER À PEUT REDÉMARRER PEUT GÉRER
Attacher le notebook au calcul x x x
Afficher l’interface utilisateur Spark x x x
Afficher les métriques de calcul x x x
Activer les journaux d’activités des pilotes x (voir la remarque)
Terminer le calcul x x
Démarrez et redémarrez le calcul x x
Modifier le calcul x
Attacher la bibliothèque au calcul x
Redimensionner le calcul x
Modifier les autorisations x

Les administrateurs d’espace de travail disposent de l’autorisation CAN MANAGE sur tous les calculs de leur espace de travail. Les utilisateurs disposent automatiquement de l’autorisation CAN MANAGE sur les calculs qu’ils créent.

Remarque

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.

Configurer les autorisations de calcul

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.

  1. Dans la barre latérale, cliquez sur Compute (Calcul).
  2. Sur la ligne correspondant au calcul, cliquez sur le menu kebab points de suspension verticaux à droite, puis sélectionnez Modifier les autorisations.
  3. Dans Paramètres d’autorisation, cliquez sur le menu déroulant Sélectionner un utilisateur, un groupe ou un principal de service..., puis sélectionnez un utilisateur, un groupe ou un principal de service.
  4. Sélectionnez une autorisation dans la liste déroulante des autorisations.
  5. Cliquez sur Ajouter , puis sur Enregistrer.

Arrêter un 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, les calculs les plus anciens sont supprimés.

À 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.

Remarque

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, tous les calculs en cours d’exécution sont arrêtés :

  • Lorsque vous mettez à niveau un espace de travail vers un plan Premium complet.
  • Si l’espace de travail n’est pas mis à niveau et que la période d’essai expire.

Arrêt manuel

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).

Arrêt automatique

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

  • Les calculs ne signalent pas l’activité résultant de l’utilisation de DStreams. Cela signifie qu’un calcul s’arrêtant automatiquement peut être arrêté lorsqu’il exécute DStreams. Désactivez l’arrêt automatique pour les calculs exécutant DStreams ou envisagez d’utiliser Structured Streaming.
  • Les calculs inactifs continuent à accumuler les frais des instances DBU et Cloud pendant la période d’inactivité avant la fin de l’opération.

Configurer l’arrêt automatique

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.

Arrêt inattendu

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.

Supprimer un calcul

La suppression d’un calcul arrête le calcul et supprime sa configuration. Pour supprimer un calcul, sélectionnez Supprimer dans le menu menu Kebab 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.

Redémarrer un calcul

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.

Remarque

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.

Redémarrer un calcul pour le mettre à jour avec les dernières images

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é-conformité pour votre compte ou votre espace de travail, les calculs de longue durée sont automatiquement redémarrés 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.

Exemple de Notebook : rechercher un calcul de longue durée

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.

Identifier et redémarrer éventuellement un calcul de longue durée

Obtenir le notebook

Démarrage automatique de calcul pour les tâches et les requêtes JDBC/ODBC

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 Créer un travail et connexion 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.

Remarque

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.

Afficher des informations de calcul dans l’interface utilisateur Apache Spark

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é.

Afficher les journaux de calcul

Azure Databricks fournit trois types de journalisation de l’activité liée aux calculs :

  • Les journaux des événements de calcul, qui capturent les événements de cycle de vie du calcul, tels que la création, l’arrêt et les modifications de configuration.
  • Les journaux worker et des pilotes Apache Spark, que vous pouvez utiliser pour le débogage.
  • Les journaux de scripts d’initialisation de calcul, qui sont utiles pour le débogage des scripts d’initialisation.

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.

Journaux des événements de calcul

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.

Afficher le journal des événements d’un calcul

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.

Pilote de calcul et journaux du Worker

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 :

  • Sortie standard
  • Erreur standard
  • Journaux Log4j

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.

Superviser la performance

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.0 et ses 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.

Calcul des métriques

Les métriques de calcul sont l’outil de supervision par défaut pour Databricks Runtime 13.0 et ses versions ultérieures. 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.

Métriques Ganglia

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 sur la page Détails du calcul. Les métriques de l’UC sont disponibles dans l’interface utilisateur Ganglia pour tous les runtimes Databricks. 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.

Configurer la collecte de métriques Ganglia

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.

Azure Monitor

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 ».

Exemple de Notebook : Métriques Datadog

Métriques Datadog

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.

Installer le notebook de script d’initialisation de l’agent Datadog

Obtenir le notebook

Désactiver des instances Spot

É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 :

  • Des défaillances de récupération (fetch) de données de lecture aléatoire
  • La perte de données de lecture aléatoire
  • La perte de données RDD
  • Échecs des travaux

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.

Activer la désaffectation

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"
    

Afficher l’état de désaffectation et la raison de la perte dans l’IU

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.