Aller au contenu principal

Gérer le compute classique

Cet article explique comment gérer le compute Databricks, y compris l'affichage, la modification, le démarrage, l'arrêt, la suppression, le contrôle d'accès et le monitoring des performances et des logs. Vous pouvez également utiliser l'API Clusters pour gérer le compute par programmation.

Afficher le compute

Pour afficher votre compute, cliquez sur icône compute Compute dans la barre latérale du workspace.

Sur le côté gauche se trouvent deux colonnes indiquant si le compute a été pin et l'état du compute. Survolez l'état pour obtenir plus d'informations.

Afficher la configuration du compute au format JSON

Il peut parfois être utile de visualiser votre configuration compute en tant que JSON. C'est particulièrement utile lorsque vous souhaitez créer des compute similaires à l'aide de l'API Clusters. Lorsque vous visualisez un compute existant, accédez à l'onglet Configuration , cliquez sur JSON en haut à droite de la tab, copiez le JSON et collez-le dans votre appel d'API. La vue JSON est en lecture seule.

Pin a compute

30 jours après qu'un compute est arrêté, il est supprimé définitivement. Pour conserver une configuration de compute polyvalent après qu'un compute a été arrêté pendant plus de 30 jours, un administrateur peut pin le compute. Jusqu'à 100 ressources de compute peuvent être pin.

Les administrateurs peuvent pin un compute à partir de la liste des computes ou de la page de détails du compute en cliquant sur l'icône pin.

Modifier un compute

Vous pouvez modifier la configuration d'un compute à partir de l'interface utilisateur des détails du compute.

remarque
  • Les Notebooks et les Jobs qui étaient attachés au compute restent attachés après modification.
  • Les bibliothèques installées sur le compute restent installées après modification.
  • Si vous modifiez un attribut quelconque d'un compute en cours d'exécution (à l'exception de la taille du compute et des autorisations), vous devez le redémarrer. Ceci peut perturber les utilisateurs qui utilisent actuellement le compute.
  • Vous ne pouvez modifier que les computes en cours d'exécution ou terminés. Vous pouvez, cependant, mettre à jour les autorisations pour les compute qui ne sont pas dans ces états sur la page des détails du compute.

Cloner un compute

Pour cloner un compute existant, sélectionnez Cloner dans le menu kebab Icône du menu kebab. du compute.

Après avoir sélectionné Cloner , l'interface utilisateur de création de compute s'ouvre préremplie avec la configuration de compute. Les attributs suivants ne sont PAS inclus dans le clone :

  • Autorisations de compute
  • Notebooks associés

Si vous ne souhaitez pas inclure les bibliothèques précédemment installées dans le compute cloné, cliquez sur le menu déroulant à côté du bouton **Créer un compute** et sélectionnez **Créer sans bibliothèques**.

Autorisations de compute

Il existe quatre niveaux d'autorisation pour un compute : NO PERMISSIONS, CAN ATTACH TO, CAN RESTART et CAN MANAGE. Pour plus de détails, consultez les ACL de Compute.

remarque

Les secrets ne sont pas masqués des stdout et stderr Stream du Driver Spark de la Ressource de compute classique. Pour protéger les données sensibles, par défaut, les logs du Driver Spark ne sont consultables que par les utilisateurs disposant de la permission CAN MANAGE sur le compute de Job et le compute polyvalent en mode d'accès dédié ou standard. Le même default s'applique aux Ressources de compute créées à partir d'un Pool. Pour permettre aux utilisateurs disposant des permissions CAN ATTACH TO ou CAN RESTART de consulter les logs, définissez la propriété suivante dans le champ de configuration Spark du compute : spark.databricks.acl.needAdminPermissionToViewLogs false.

Sur les compute hérités avec le mode d'accès partagé sans isolation, les logs du driver Spark peuvent être consultés par les utilisateurs disposant de l'autorisation CAN ATTACH TO, CAN RESTART ou CAN MANAGE. Pour limiter l'accès aux logs aux seuls utilisateurs disposant de l'autorisation CAN MANAGE, définissez spark.databricks.acl.needAdminPermissionToViewLogs sur true.

Comme spark.databricks.acl.needAdminPermissionToViewLogs est une propriété Spark au niveau du compute, vous devez la définir sur chaque compute qui en a besoin. Pour les exécutions de job éphémères soumises via jobs/runs/submit, telles que celles déclenchées par un orchestrateur externe, définissez la propriété dans new_cluster.spark_conf au moment de la soumission, ainsi que toute entrée access_control_list.

Configurer les autorisations de compute

Cette section décrit comment gérer les autorisations à l'aide de l'interface utilisateur du Workspace. Vous pouvez également utiliser l'API de Permissions ou le fournisseur Databricks Terraform.

Vous devez disposer de l'autorisation CAN MANAGE sur un compute pour configurer les autorisations de compute.

  1. Dans la barre latérale, cliquez sur compute.
  2. Sur la ligne du compute, cliquez sur le menu kebab Icône du menu kebab. à droite et sélectionnez Modifier les autorisations .
  3. Dans **Paramètres d’autorisations**, cliquez sur le menu déroulant **Sélectionner un utilisateur, un groupe ou un Service Principal…** et sélectionnez un utilisateur, un groupe ou un Service Principal.
  4. Sélectionnez une autorisation dans le menu déroulant d'autorisations.
  5. Cliquez sur Ajouter et cliquez sur Enregistrer .

Arrêter un compute

Pour économiser les ressources de compute, vous pouvez terminer un compute. La configuration du compute terminé est enregistrée afin qu'elle puisse être réutilisée (ou, dans le cas des jobs, démarrée automatiquement) ultérieurement. Vous pouvez arrêter manuellement un compute ou configurer le compute pour qu'il s'arrête automatiquement après une période d'inactivité spécifiée.

À moins qu'un compute ne soit pin ou redémarré, il est automatiquement et définitivement supprimé 30 jours après sa résiliation. Étant donné que cette suppression est effectuée par le système plutôt que par une action d’utilisateur ou d’API, elle n’apparaît pas dans les logs d’audit.

Les compute terminés apparaissent dans la liste des compute avec un cercle gris à gauche du nom du compute.

remarque

Lorsque vous exécutez un job sur un nouveau compute de job (ce qui est généralement recommandé), le compute prend fin et n'est pas disponible pour un redémarrage une fois le job terminé. D'autre part, si vous planifiez l'exécution d'un job sur un compute polyvalent existant qui a été terminé, ce compute démarrera automatiquement.

Terminaison manuelle

Vous pouvez arrêter manuellement un compute depuis la liste de compute (en cliquant sur le carré de la ligne du compute) ou la page de détails du compute (en cliquant sur **Arrêter**).

Arrêt automatique

Vous pouvez également configurer l'arrêt automatique pour un compute. Lors de la création du compute, vous pouvez spécifier une période d'inactivité en minutes au-delà de laquelle vous souhaitez que le compute s'arrête.

Si la différence entre l'heure actuelle et la dernière commande exécutée sur le compute est supérieure à la période d'inactivité spécifiée, Databricks met fin automatiquement à ce compute.

Un compute est considéré comme inactif lorsque toutes les commandes sur le compute, y compris les Jobs Spark, le Structured Streaming, les appels JDBC et l'activité du terminal Web Databricks, ont terminé leur exécution. Ceci n'inclut pas les commandes exécutées en se connectant en SSH au compute et en exécutant des commandes bash en dehors du terminal web Databricks.

attention
  • Compute ne rapporte pas d'activité résultant de l'utilisation de DStreams. Cela signifie qu'un compute à arrêt automatique peut être arrêté pendant l'exécution de DStreams. Désactivez l'arrêt automatique pour le compute exécutant des DStreams ou envisagez d'utiliser Structured Streaming.
  • Les compute inactifs continuent d’accumuler des DBU et des frais d’instance cloud pendant la période d’inactivité avant la résiliation.

Configurer l'arrêt automatique

Vous pouvez configurer l'arrêt automatique dans la nouvelle interface utilisateur de compute. Assurez-vous que la case est cochée et entrez le nombre de minutes dans le paramètre Arrêter après ___ minutes d'inactivité .

Vous pouvez désactiver l’arrêt automatique en décochant la case Arrêt automatique ou en spécifiant une période d’inactivité de 0.

remarque

L'arrêt automatique est mieux géré dans les dernières versions de Spark. Les anciennes versions de Spark ont des limitations connues qui peuvent entraîner des rapports inexacts de l'activité de compute. Par exemple, un compute exécutant des commandes JDBC, R ou streaming peut signaler un temps d'activité obsolète qui entraîne l'arrêt prématuré du compute. Veuillez mettre à niveau vers la version Spark la plus récente pour bénéficier des correctifs de bogues et des améliorations apportées à l'arrêt automatique.

Arrêt inattendu

Parfois, un compute est arrêté de manière inattendue, et non à la suite d'un arrêt manuel ou d'un arrêt automatique configuré.

Pour une liste des motifs d'arrêt et des étapes de correction, consultez la Base de connaissances.

Supprimer un compute

La suppression d’un compute met fin au compute et supprime sa configuration. Pour supprimer un compute, sélectionnez Supprimer dans le menu Icône du menu kebab. du compute.

attention

Vous ne pouvez pas annuler cette action.

Pour supprimer un compute épinglé, il doit d'abord être désépinglé par un administrateur.

Vous pouvez également appeler l'Endpoint Clusters API pour supprimer un compute par programmation.

Redémarrer un compute

Vous pouvez relancer un compute précédemment arrêté à partir de la liste des computes, de la page de détails du compute ou d'un Notebook. Vous pouvez également appeler le endpoint de l'API Clusters pour start un compute par programme.

Databricks identifie un compute à l'aide de son ID de cluster unique. Lorsque vous start un compute terminé, Databricks recrée le compute avec le même ID, installe automatiquement toutes les bibliothèques et rattache les notebooks.

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

Lorsque vous redémarrez un compute, il obtient les dernières images pour les conteneurs de ressources de compute et les hôtes de VM. Il est important de planifier des redémarrages réguliers pour le compute à longue durée, comme ceux utilisés pour le traitement des données en streaming.

Il est de votre responsabilité de redémarrer régulièrement toutes les Ressources de compute pour maintenir l'image à jour avec la dernière version de l'image.

important

Si vous activez le profil de sécurité de la conformité pour votre compte ou votre workspace, le compute de longue durée est automatiquement redémarré au besoin pendant une fenêtre de maintenance planifiée. Cela réduit le risque qu'un redémarrage automatique perturbe un Job planifié. Vous pouvez également forcer un redémarrage pendant la fenêtre de maintenance. Consultez la section Mise à jour automatique du cluster.

Exemple de notebook : Rechercher des computes à exécution longue

Si vous êtes administrateur de Workspace, vous pouvez exécuter un script qui détermine depuis combien de temps chaque compute est en cours d'exécution et, éventuellement, les redémarrer s'ils sont plus anciens qu'un nombre de jours spécifié. Databricks fournit ce script sous forme de Notebook.

remarque

Si votre workspace fait partie de la préversion publique de la mise à jour automatique du compute, vous n'aurez peut-être pas besoin de ce script. Le compute redémarre automatiquement si nécessaire pendant les fenêtres de maintenance planifiées.

Les premières lignes du script définissent les paramètres de configuration :

  • min_age_output: Le nombre maximum de jours qu'un compute peut exécuter. La valeur par default est 1.
  • perform_restart: Si True, le script redémarre tout compute dont l'âge est supérieur au nombre de jours spécifié par min_age_output. La valeur default est False, qui identifie les compute de longue durée mais ne les redémarre pas.
  • secret_configuration: Remplacez REPLACE_WITH_SCOPE et REPLACE_WITH_KEY par un nom de Secret Scope et de clé. Pour plus de détails sur la configuration des secrets, consultez le notebook.
attention

Si vous définissez perform_restart sur True, le script redémarre automatiquement les compute éligibles, ce qui peut entraîner l'échec des Jobs actifs et la Reset des Notebooks ouverts. Pour réduire le risque de perturbation des Jobs essentiels de votre Workspace, planifiez une fenêtre de maintenance et assurez-vous d'en informer les utilisateurs du Workspace.

Identifier et, facultativement, redémarrer le compute de longue durée

Démarrage automatique de compute pour les Jobs et les queries JDBC/ODBC

Lorsqu'un Job attribué à un compute arrêté doit être exécuté, ou que vous vous connectez à un compute arrêté à partir d'une interface JDBC/ODBC, le compute est automatiquement redémarré. Consultez Configurer le calcul pour les jobs et connexion JDBC.

Le démarrage automatique de compute vous permet de configurer le compute pour qu'il s'arrête automatiquement sans nécessiter d'intervention manuelle pour redémarrer le compute pour les Jobs planifiés. De plus, vous pouvez planifier l'initialisation de compute en planifiant l'exécution d'un Job sur un compute arrêté.

Avant le redémarrage automatique d'un compute, les autorisations de contrôle d'accès du compute et du Job sont vérifiées.

remarque

Si votre compute a été créé dans la version 2.70 ou antérieure de la plateforme Databricks, il n'y a pas de démarrage automatique : les jobs planifiés pour s'exécuter sur un compute arrêté échoueront.

Afficher les informations de compute dans la Spark UI

Vous pouvez consulter des informations détaillées sur les jobs Spark en sélectionnant l'onglet Spark UI sur la page des détails du compute.

Si vous redémarrez un compute arrêté, la Spark UI affiche les informations pour le compute redémarré, et non les informations historiques pour le compute arrêté.

Consultez Diagnostiquer les problèmes de coût et de performance à l'aide de la Spark UI pour vous guider dans le diagnostic des problèmes de coût et de performance à l'aide de la Spark UI.

Afficher les logs de compute

Databricks fournit trois types de journalisation des activités liées au compute :

  • Logs d'événements de compute, qui capturent les événements du cycle de vie du compute tels que la création, la terminaison et les modifications de configuration.
  • Log du Driver et du Worker Apache Spark, que vous pouvez utiliser pour le debugging.
  • Logs des scripts d'initialisation de compute, qui sont précieux pour le debugging des scripts d'initialisation.

Cette section traite des logs d'événements compute ainsi que des logs Driver et Worker. Pour plus de détails sur les logs du script d'initialisation, consultez Journalisation du script d'initialisation.

Compute event Logs

Le journal d'événements du compute affiche les événements importants du cycle de vie du compute qui sont déclenchés manuellement par des actions de l'utilisateur ou automatiquement par Databricks. De tels événements affectent l'opération d'un compute dans son ensemble et les jobs s'exécutant dans le compute.

Pour les types d'événements pris en charge, consultez la structure de données de l'API Clusters.

Les événements sont stockés pendant 60 jours, ce qui est comparable aux autres durées de conservation des données dans Databricks.

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

Pour afficher le journal des événements du compute, sélectionnez l'onglet Logs sur les pages de détails du compute.

Pour plus d'informations sur un événement, cliquez sur sa ligne dans les logs, puis cliquez sur l'onglet **JSON** pour plus de détails.

Logs du Driver et du Worker de compute

Les instructions d’impression directe et de Log de vos Notebooks, Jobs et bibliothèques sont acheminées vers les Logs du Driver Spark. Vous pouvez accéder à ces fichiers de logs depuis la Driver logs tab de la page des détails du compute. Cliquez sur le nom d'un fichier journal pour le download.

Ces logs ont trois sorties :

  • Sortie standard
  • Erreur standard
  • Logs Log4j

Pour afficher les Logs Worker Spark, utilisez l'onglet Spark UI . Vous pouvez également configurer un emplacement de livraison des logs pour le compute. Les Logs Worker et compute sont livrés à l'emplacement que vous spécifiez.

Indicateurs de compute

Les métriques de compute sont disponibles pour le calcul multifonction classique et les Jobs de compute. Pour accéder à l'interface utilisateur des métriques de compute, cliquez sur le nom d'une ressource de compute individuelle dans la liste de compute, puis sur le tab **Metrics**.

Vous pouvez consulter les métriques historiques en sélectionnant une plage horaire à l'aide du filtre de sélecteur de date. Les métriques sont collectées chaque minute. Vous pouvez également obtenir les dernières métriques en cliquant sur le bouton refresh . Pour plus d'information, consultez Afficher les métriques de compute.

Exemple de Notebook : métriques Datadog

Métriques Datadog

Vous pouvez installer des agents Datadog sur les nœuds de compute pour envoyer des métriques Datadog à votre compte Datadog. Le Notebook suivant montre comment installer un agent Datadog sur un compute à l'aide d'un script d'initialisation propre au compute.

Pour installer l’agent Datadog sur tous les computes, gérez le script d’initialisation à l’échelle du compute à l’aide d’une politique de compute.

Installer le Notebook de script d'initialisation de l'agent Datadog

Mettre hors service les instances ponctuelles

Puisque les instances spot peuvent réduire les coûts, la création de compute à l'aide d'instances spot plutôt que d'instances à la demande est une méthode courante pour exécuter des Jobs. Toutefois, les instances ponctuelles peuvent être réquisitionnées par les mécanismes de planification du fournisseur de cloud. La préemption des instances ponctuelles peut entraîner des problèmes avec les jobs en cours d'exécution, notamment :

  • Échecs de récupération aléatoire
  • Perte de données de Shuffle
  • Perte de données RDD
  • Défaillances de job

Vous pouvez activer la mise hors service pour vous 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 de VM Spot ne soit mise hors service. Lorsqu'une instance spot contenant un exécuteur reçoit une notification de préemption, le processus de désaffectation tentera de migrer les données shuffle et RDD vers des exécuteurs sains. La durée avant la préemption finale est généralement de 30 secondes à 2 minutes, selon le fournisseur de cloud.

Databricks recommande d'activer la migration des données lorsque la mise hors service est également activée. Généralement, la possibilité d'erreurs diminue à mesure que davantage de données sont migrées, y compris les échecs de récupération aléatoire, la perte de données aléatoires et la perte de données RDD. La migration des données peut également entraîner moins de recalculs et des économies de coûts.

remarque

Le déclassement est un effort au mieux et ne garantit pas que toutes les données puissent être migrées avant la préemption finale. Le déclassement ne peut pas garantir l’absence d’échecs de récupération de shuffle lorsque les tâches en cours d’exécution récupèrent des données de shuffle de l’exécuteur.

Avec le décommissionnement activé, les échecs de tâche causés par la préemption d'instances Spot ne sont pas ajoutés au nombre total de tentatives échouées. Les échecs de tâche causés par la préemption ne sont pas comptabilisés comme des tentatives échouées, car la cause de l'échec est externe à la tâche et n'entraînera pas l'échec du Job.

Activer la mise hors service

Pour activer la désaffectation sur un compute, entrez les propriétés suivantes dans l'onglet Spark sous Options avancées dans l'interface utilisateur de configuration du compute. Pour plus d'information sur ces propriétés, consultez la configuration Spark.

  • Pour activer la désaffectation des applications, saisissez cette propriété dans le champ Configuration Spark :

    spark.decommission.enabled true
  • Pour activer la migration des données de shuffle pendant la mise hors service, saisissez cette propriété dans le champ Configuration Spark :

    spark.storage.decommission.enabled true
    spark.storage.decommission.shuffleBlocks.enabled true
  • Pour activer la migration des données du cache RDD lors du déclassement, saisissez cette propriété dans le champ **Configuration Spark** :

    spark.storage.decommission.enabled true
    spark.storage.decommission.rddBlocks.enabled true
remarque

Lorsque la réplication RDD StorageLevel est supérieure à 1, Databricks ne recommande pas d'activer la migration de données RDD, car les répliques garantissent que les RDD ne perdront pas de données.

  • Pour activer la désaffectation des Worker, saisissez cette propriété dans le champ Variables d'environnement :

    SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"

Afficher l'état de la mise hors service et la raison de la perte dans l'interface utilisateur

Pour accéder depuis l’interface utilisateur au statut de mise hors service d’un worker, accédez à l’onglet Spark compute UI - Master .

Lorsque la mise hors service est terminée, vous pouvez afficher le motif de perte de l'exécuteur dans l'onglet **Spark UI > Exécuteurs** sur la page des détails du compute.