Verwalten von Compute

Dieser Artikel beschreibt die Verwaltung von Azure Databricks-Computes, einschließlich Anzeigen, Bearbeiten, Starten, Beenden, Löschen, Steuern des Zugriffs und Überwachen von Leistung und Protokolle. Sie können die Cluster-API auch verwenden, um Computes programmgesteuert zu verwalten.

Anzeigen von „Compute“

Um Ihren Compute anzuzeigen, klicken Sie in der Arbeitsbereichs-Randleiste auf ComputesymbolCompute.

Auf der linken Seite befinden sich zwei Spalten, die anzeigen, ob das Compute angeheftet wurde und welchen Status er aufweist. Zeigen Sie mit der Maus auf den Status, um weitere Informationen zu erhalten.

Anzeigen der Computekonfiguration als JSON-Datei

Manchmal kann es hilfreich sein, Ihre Computekonfiguration als JSON anzuzeigen. Dies ist besonders nützlich, wenn Sie ähnliche Computes mit der Cluster-API erstellen möchten. Wenn Sie einen vorhandenen Compute anzeigen, wechseln Sie zur Registerkarte Konfiguration, klicken Sie oben rechts auf der Registerkarte auf JSON, kopieren Sie den JSON-Code und fügen Sie ihn in Ihren API-Aufruf ein. Die JSON-Ansicht ist schreibgeschützt.

Anheften eines Compute

30 Tage nach dem Beenden eines Computes wird es endgültig gelöscht. Wenn Sie die Konfiguration eines Universalcomputes nach seiner Beendigung länger als 30 Tage beibehalten möchten, kann ein Administrator das Compute anheften. Bis zu 100 Computeressourcen können angeheftet werden.

Administratoren können einen Compute aus der Computeliste oder der Computedetailseite anheften, indem Sie auf das Pin-Symbol klicken.

Bearbeiten eines Computes

Sie können die Konfiguration eines Computes über die Benutzeroberfläche für Computedetails bearbeiten.

Hinweis

  • Notebooks und Aufträge, die an das Compute angefügt wurden, bleiben nach der Bearbeitung angefügt.
  • Auf dem Compute installierte Bibliotheken bleiben nach der Bearbeitung installiert.
  • Wenn Sie ein Attribut eines ausgeführten Computes bearbeiten (mit Ausnahme der Computegröße und -berechtigungen), müssen Sie ihn neu starten. Dies kann Benutzer stören, die das Compute gerade verwenden.
  • Sie können nur eine laufende oder beendete Berechnung bearbeiten. Sie können aber die Berechtigungen für das Compute aktualisieren, die nicht in den Zuständen auf der Seite „Computedetails“ enthalten sind.

Klonen eines Computes

Um einen vorhandenen Compute zu klonen, wählen Sie Klonen aus dem Kebab-Menü Kebab-Menü (auch bekannt als drei Punktemenü) aus.

Nachdem Sie „Klonen” ausgewählt haben, wird die Benutzeroberfläche für die Computeerstellung mit der Computekonfiguration geöffnet. Die folgenden Attribute sind nicht im Klon enthalten:

  • Computeberechtigungen
  • Installierte Bibliotheken
  • Angefügte Notebooks

Computeberechtigungen

Es gibt vier Berechtigungsstufen für einen Compute: KEINE BERECHTIGUNGEN, KANN ANFÜGEN, KANN NEU STARTEN und KANN VERWALTEN. In der Tabelle sind die Optionen für die jeweilige Berechtigung aufgeführt.

Wichtig

Benutzer mit der Berechtigung KANN ANFÜGEN können die Dienstkontoschlüssel in der log4j-Datei anzeigen. Erteilen Sie diese Berechtigungsstufe mit Vorsicht.

Qualifikationen KEINE BERECHTIGUNGEN KANN ANFÜGEN AN KANN NEU STARTEN KANN VERWALTEN
Anfügen eines Notebooks an einen Compute x x x
Anzeigen der Spark-Benutzeroberfläche x x x
Computemetriken anzeigen x x x
Anzeigen von Treiberprotokollen x (siehe Hinweis)
Compute beenden x x
Compute starten und neu starten x x
Compute bearbeiten x
Anfügen einer Bibliothek an das Cluster x
Größe des Computes ändern x
Berechtigungen ändern x

Arbeitsbereichsadministratoren verfügen über die Berechtigung KANN VERWALTEN für alle Computes in ihrem Arbeitsbereich. Benutzer verfügen für selbst erstellte Computes automatisch über die Berechtigung KANN VERWALTEN.

Hinweis

Geheimnisse werden nicht aus den Spark-Treiberprotokollstreams stdout und stderr eines Clusters entfernt. Um vertrauliche Daten zu schützen, können Spark-Treiberprotokolle standardmäßig nur von Benutzern mit Berechtigung KANN VERWALTEN für Auftrag, Einzelbenutzerzugriffsmodus und Cluster des freigegebenen Zugriffsmodus angezeigt werden. Um Benutzern mit Berechtigung KANN ANFÜGEN AN oder KANN NEU STARTEN das Anzeigen der Protokolle in diesen Clustern zu ermöglichen, legen Sie die folgende Spark-Konfigurationseigenschaft in der Clusterkonfiguration fest: spark.databricks.acl.needAdminPermissionToViewLogs false.

Auf Clustern des freigegebenen Isolationsmodus können die Spark-Treiberprotokolle von Benutzern mit den Berechtigungen KANN ANFÜGEN AN oder KANN VERWALTEN angezeigt werden. Um die Benutzer, welche die Protokolle lesen können, auf Benutzer mit der Berechtigung KANN VERWALTEN zu beschränken, setzen Sie spark.databricks.acl.needAdminPermissionToViewLogs auf true.

Informationen zum Hinzufügen von Spark-Eigenschaften zu einer Clusterkonfiguration finden Sie unter Spark-Konfiguration.

Konfigurieren von Computeberechtigungen

In diesem Abschnitt wird beschrieben, wie Sie Berechtigungen über die Benutzeroberfläche des Arbeitsbereichs verwalten. Sie können auch die Berechtigungs-API oder den Databricks-Terraform-Anbieter verwenden.

Sie müssen über die KANN VERWALTEN-Berechtigung für ein Compute verfügen, um Computeberechtigungen zu konfigurieren.

  1. Klicken Sie auf der Seitenleiste auf Compute.
  2. Wählen Sie in der Zeile für das Compute das Kebab-Menü Vertikale Auslassungspunkte auf der rechten Seite und dann Berechtigungen bearbeiten aus.
  3. Wählen Sie unter Berechtigungseinstellungen das Dropdownmenü Benutzer, Gruppe oder Dienstprinzipal auswählen… und dann einen*eine Benutzer*in, eine Gruppe oder einen Dienstprinzipal aus.
  4. Wählen Sie im Dropdownmenü „Berechtigung“ eine Berechtigung aus.
  5. Wählen Sie Hinzufügen und dann Speichern aus.

Beenden einer Berechnung

Um Computeressourcen zu sparen, können Sie ein Compute beenden. Die Konfiguration des beendeten Computes wird gespeichert, sodass sie zu einem späteren Zeitpunkt wiederverwendet (oder im Falle von Aufträgen automatisch gestartet) werden kann. Sie können ein Compute manuell beenden oder es so konfigurieren, dass es nach einer angegebenen Zeit der Inaktivität automatisch beendet wird. Wenn die Anzahl der beendeten Computes 150 überschreitet, werden die ältesten Computes gelöscht.

Sofern ein Compute nicht angeheftet ist oder neu gestartet wurde, wird er 30 Tage nach dem Beenden automatisch und dauerhaft gelöscht.

Ein beendeter Compute wird in der Computeliste mit einem grauen Kreis links neben dem Computenamen angezeigt.

Hinweis

Wenn Sie einen Auftrag auf einem neuen Auftragscompute ausführen (was in der Regel empfohlen wird), wird das Compute beendet und steht nach Abschluss des Auftrags nicht mehr zum Neustarten zur Verfügung. Wenn Sie andererseits planen, dass ein Auftrag auf einem vorhandenen Allzweckcompute ausgeführt wird, der beendet wurde, wird dieses Compute automatisch gestartet.

Wichtig

Wenn Sie eine Premium-Arbeitsbereich-Testversion verwenden, werden alle laufenden Computes beendet:

  • Wenn Sie ein Upgrade eines Arbeitsbereichs auf die vollständige Premium-Version durchführen.
  • Wenn der Arbeitsbereich nicht aktualisiert wird und die Testversion abläuft.

Manuelle Beendigung

Sie können einen Compute manuell aus der Computeliste beenden (indem Sie auf das Quadrat in der Zeile des Computes klicken) oder die Computedetailseite (durch Klicken auf Beenden).

Automatische Beendigung

Sie können auch die automatische Beendigung für ein Compute festlegen. Während der Computeerstellung können Sie einen Inaktivitätszeitraum in Minuten angeben, nach dem das Compute beendet werden soll.

Wenn der Unterschied zwischen der aktuellen Zeit und der letzten Ausführung des Befehls im Compute größer als der angegebene Inaktivitätszeitraum ist, beendet Azure Databricks dieses Compute automatisch.

Ein Compute gilt als inaktiv, wenn alle Befehle im Compute, einschließlich Spark-Aufträgen, strukturiertem Streaming und JDBC-Aufrufen, die Ausführung abgeschlossen haben.

Warnung

  • Computes melden keine Aktivitäten, die sich aus der Verwendung von DStreams ergeben. Dies bedeutet, dass ein automatisch beendetes Compute während der Ausführung von DStreams beendet werden kann. Deaktivieren Sie die automatische Beendigung für Computes, auf denen DStreams ausgeführt werden, oder erwägen Sie die Verwendung von strukturiertem Streaming.
  • Bei Computes im Leerlauf fallen während der Inaktivitätsphase vor der Beendigung weiterhin DBU- und Cloud-Instanzgebühren an.

Konfigurieren der automatischen Beendigung

Sie können die automatische Beendigung in der neuen Benutzeroberfläche des Computes konfigurieren. Stellen Sie sicher, dass das Kontrollkästchen aktiviert ist, und geben Sie in der Einstellung Beenden nach ___ Minuten ohne Aktivität eine Anzahl von Minuten ein.

Sie können die automatische Beendigung deaktivieren, indem Sie das Kontrollkästchen „Automatische Beendigung“ deaktivieren oder einen Inaktivitätszeitraum von 0 angeben.

Hinweis

Die automatische Beendigung wird in den neuesten Spark-Versionen am besten unterstützt. Ältere Spark-Versionen weisen bekannte Einschränkungen auf, die zu ungenauen Berichten der Computeaktivität führen können. Beispielsweise können Computes, die JDBC-, R- oder Streamingbefehle ausführen, eine veraltete Aktivitätszeit melden, die zu einer vorzeitigen Computebeendigung führt. Führen Sie ein Upgrade auf die neueste Spark-Version durch, um von Fehlerbehebungen und Verbesserungen bei der automatischen Beendigung zu profitieren.

Unerwartete Beendigung

Es kann vorkommen, dass ein Compute unerwartet beendet wird, und zwar nicht aufgrund einer manuellen Beendigung oder einer konfigurierten automatischen Beendigung.

Eine Liste der Beendigungsgründe und Korrekturschritte finden Sie in der Wissensdatenbank.

Löschen eines Computes

Durch das Löschen eines Computes wird das Compute beendet und die Konfiguration entfernt. Um ein Compute zu löschen, wählen Sie Löschen aus dem Menü „Compute“Kebab-Menü aus.

Warnung

Dieser Vorgang lässt sich nicht rückgängig machen.

Um einen angehefteten Compute zu löschen, muss er zunächst von einem Administrator gelöst werden.

Sie können auch den Endpunkt Cluster-API aufrufen, um ein Compute programmgesteuert zu löschen.

Neustarten eines Computes

Sie können einen zuvor beendeten Compute aus der Computeliste, der Computedetailseite oder einem Notizbuch neu starten. Sie können auch den Endpunkt Cluster-API aufrufen, um einen Compute programmgesteuert zu starten.

Azure Databricks identifiziert ein Compute über seine eindeutige Cluster-ID. Wenn Sie ein beendetes Compute starten, erstellt Databricks das Compute mit der gleichen ID neu, installiert automatisch alle Bibliotheken und fügt die Notebooks neu an.

Hinweis

Wenn Sie einen Testarbeitsbereich verwenden und die Testversion abgelaufen ist, können Sie kein Compute starten.

Ein Compute neu starten, um es mit den neuesten Images zu aktualisieren

Wenn Sie ein Compute neu starten, ruft es die neuesten Images für die Container der Computeressourcen und die VM-Hosts ab. Es ist wichtig, regelmäßige Neustarts für zeitintensive Computes zu planen, etwa solche, die für die Verarbeitung von Streamingdaten verwendet werden.

Es liegt in Ihrer Verantwortung, alle Berechnungsressourcen regelmäßig neu zu starten, um das Image mit der neuesten Image-Version auf dem neuesten Stand zu halten.

Wichtig

Wenn Sie das Compliancesicherheitsprofil für Ihr Konto oder Ihren Arbeitsbereich aktivieren, werden Computes mit langer Ausführungszeit während eines geplanten Wartungsfensters je nach Bedarf automatisch neu gestartet. Dadurch wird das Risiko verringert, dass ein automatischer Neustart einen geplanten Auftrag unterbricht. Sie können auch einen Neustart während des Wartungsfensters erzwingen. Siehe Automatic cluster update (Automatisches Clusterupdate).

Notebookbeispiel: Suchen von Computes mit langer Ausführungszeit

Wenn Sie Arbeitsbereichsadministrator sind, können Sie ein Skript ausführen, das bestimmt, wie lang die einzelnen Computes ausgeführt wurden, und sie optional neu starten, wenn sie älter als eine bestimmte Anzahl von Tagen sind. Azure Databricks stellt dieses Skript als Notebook bereit.

Die ersten Zeilen des Skripts definieren Konfigurationsparameter:

  • min_age_output: Die maximale Anzahl von Tagen, die ein Compute ausführen kann. Der Standard- ist 1.
  • perform_restart: Wenn True, startet das Skript jedes Compute, das älter ist als die durch min_age_output angegebene Anzahl von Tagen, neu. Die Standardeinstellung ist False, die das Compute mit langer Ausführungszeit identifiziert, aber es nicht neu startet.
  • secret_configuration: Ersetzen Sie REPLACE_WITH_SCOPE und REPLACE_WITH_KEY durch einen Geheimnisbereich und einen Schlüsselnamen. Weitere Informationen zum Einrichten der Geheimnisse finden Sie im Notebook.

Warnung

Wenn Sie perform_restart auf True setzen, startet das Skript geeignete Computes automatisch neu, was dazu führen kann, dass aktive Aufträge fehlschlagen und geöffnete Notebooks zurückgesetzt werden. Um das Risiko einer Unterbrechung der unternehmenskritischen Aufträge Ihres Arbeitsbereichs zu reduzieren, planen Sie ein geplantes Wartungsfenster ein, und benachrichtigen Sie die Arbeitsbereichsbenutzer*innen.

Identifizieren und optional Neustarten von Computes mit langer Ausführungszeit

Notebook abrufen

Automatischer Computestart für Aufträge und JDBC/ODBC-Abfragen

Wenn ein Auftrag, der einem beendeten Compute zugewiesen ist, ausgeführt werden soll oder Sie über eine JDBC-/ODBC-Schnittstelle eine Verbindung mit einem beendeten Compute herstellen, wird das Compute automatisch neu gestartet. Weitere Informationen finden Sie unter Erstellen eines Auftrags und Herstellen einer JDBC-Verbindung.

Mit dem automatischen Computestart können Sie Computes so konfigurieren, dass sie automatisch beendet werden, ohne dass ein manueller Eingriff zum Neustart der Computes für geplante Aufträge erforderlich ist. Darüber hinaus können Sie die Computeinitialisierung planen, indem Sie einen Auftrag für die Ausführung in einem beendeten Compute planen.

Bevor ein Compute automatisch neu gestartet wird, werden die Berechtigungen für die Compute- und Auftrags- Zugriffssteuerung überprüft.

Hinweis

Wenn Ihr Compute in Azure Databricks Plattformversion 2.70 oder früher erstellt wurde, gibt es keinen automatischen Start: Aufträge, die für die Ausführung auf beendeten Computes geplant sind, schlagen fehl.

Anzeigen von Computeinformationen in der Apache Spark UI

Sie können detaillierte Informationen zu Spark-Aufträgen anzeigen, indem Sie die Registerkarte Spark-Benutzeroberfläche auf der Computedetailseite auswählen.

Wenn Sie ein beendetes Compute neu starten, zeigt die Spark-Benutzeroberfläche Informationen für das neu gestartete Compute und nicht die Verlaufsinformationen für das beendete Compute an.

Anzeigen von Computeprotokollen

Azure Databricks bietet drei Arten der Protokollierung computebezogener Aktivitäten:

  • Computeereignisprotokolle, die Computelebenszyklusereignisse erfassen, z. B. Erstellung, Beendigung, Konfigurationsbearbeitungen usw.
  • Apache Spark-Treiber- und Workerprotokolle, die Sie zum Debuggen verwenden können.
  • Compute-Initialisierungsskript-Protokolle, die für das Debuggen von Initialisierungsskripts nützlich sind.

In diesem Abschnitt werden Computeereignisprotokolle sowie Treiber- und Workerprotokolle erläutert. Ausführliche Informationen zu Init-Skript-Protokollen finden Sie unter Init-Skript-Protokollierung.

Compute von Ereignisprotokollen

Das Computeereignisprotokoll zeigt wichtige Ereignisse im Computelebenszyklus an, die manuell durch Benutzeraktionen oder automatisch durch Azure Databricks ausgelöst werden. Diese Ereignisse beeinflussen den Betrieb eines Computes als Ganzes und die Aufträge, die im Compute ausgeführt werden.

Informationen zu unterstützten Ereignistypen finden Sie in der Cluster-API-Datenstruktur.

Ereignisse werden 60 Tage lang gespeichert. Dies entspricht den gängigen Datenaufbewahrungszeiten in Azure Databricks.

Anzeigen des Ereignisprotokolls eines Computes

Um das Ereignisprotokoll des Computes anzuzeigen, wählen Sie die Registerkarte Ereignisprotokoll auf der Computedetailseite aus.

Um weitere Informationen zu einem Ereignis zu erhalten, klicken Sie auf die Zeile im Protokoll und dann auf die Registerkarte JSON.

Computetreiber- und Workerprotokolle

Die Direktdruck- und Protokollanweisungen aus Ihren Notebooks, Aufträgen und Bibliotheken werden zu den Spark-Treiberprotokollen geleitet. Sie können auf diese Dateien über die Registerkarte Treiberprotokolle auf der Computedetailseite zugreifen. Klicken Sie auf den Namen einer Protokolldatei, um sie herunterzuladen.

Diese Protokolle weisen drei Ausgaben auf:

  • Standardausgabe
  • Standardfehler
  • Log4j-Protokolle

Verwenden Sie zum Anzeigen von Spark Worker-Protokollen die Registerkarte Spark UI. Sie können auch einen Protokollübermittlungsspeicherort für das Compute konfigurieren. Sowohl Worker- als auch Computeprotokolle werden an den von Ihnen angegebenen Speicherort übermittelt.

Überwachen der Leistung

Zur Überwachung der Leistung von Azure Databricks-Computes bietet Azure Databricks über die Detailseite des Computes Zugriff auf Metriken. Für Databricks Runtime 12.2 und niedriger bietet Azure Databricks Zugriff auf Ganglia-Metriken. Für Databricks Runtime 13.0 und höher werden Computemetriken von Azure Databricks bereitgestellt.

Darüber hinaus können Sie ein Azure Databricks-Compute so konfigurieren, dass Metriken an einen Log Analytics-Arbeitsbereich in Azure Monitor (die Überwachungsplattform für Azure) gesendet werden.

Sie können außerdem Datadog-Agents auf Computeknoten installieren, um Datadog-Metriken an Ihr Datadog-Konto zu senden.

Computemetriken

Computemetriken sind das Standardüberwachungstool für Databricks Runtime 13.0 und höher. Navigieren Sie auf der Seite mit den Computedetails zur Registerkarte Metriken, um auf die Benutzeroberfläche für die Computemetriken zuzugreifen.

Sie können Verlaufsmetriken anzeigen, indem Sie mithilfe des Datumsauswahlfilters einen Zeitbereich auswählen. Metriken werden jede Minute erfasst. Sie können auch die neuesten Metriken abrufen, indem Sie auf die Schaltfläche Aktualisieren klicken. Weitere Informationen finden Sie unter Anzeigen von Computemetriken.

Ganglia-Metriken

Hinweis

Ganglia-Metriken sind nur für Databricks Runtime 12.2 und niedriger verfügbar.

Navigieren Sie auf der Seite mit den Computedetails zur Registerkarte Metriken, um auf die Ganglia-Benutzeroberfläche zuzugreifen. CPU-Metriken sind auf der Ganglia-Benutzeroberfläche für alle Databricks-Runtimes verfügbar. GPU-Metriken sind für GPU-fähige Computes verfügbar.

Klicken Sie zum Anzeigen von Livemetriken auf den Link zur Ganglia-Benutzeroberfläche.

Klicken Sie auf eine Momentaufnahmedatei, um Verlaufsmetriken anzuzeigen. Die Momentaufnahme enthält aggregierte Metriken für die Stunde vor der ausgewählten Zeit.

Hinweis

Ganglia wird bei Docker-Containern nicht unterstützt. Wenn Sie einen Docker-Container mit Ihrem Compute verwenden, sind Ganglia-Metriken nicht verfügbar.

Konfigurieren der Sammlung von Ganglia-Metriken

Azure Databricks sammelt standardmäßig alle 15 Minuten Ganglia-Metriken. Legen Sie zum Konfigurieren des Sammlungszeitraums die Umgebungsvariable DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES mithilfe eines Initialisierungsskripts oder im Feld spark_env_vars in der Clustererstellungs-API fest.

Azure Monitor

Sie können einen Azure Databricks-Computes so konfigurieren, dass Metriken an einen Log Analytics-Arbeitsbereich in Azure Monitor (die Überwachungsplattform für Azure) gesendet werden. Eine vollständige Anleitung finden Sie unter Überwachen von Azure Databricks.

Hinweis

Wenn Sie den Azure Databricks-Arbeitsbereich in Ihrem eigenen virtuellen Netzwerk bereitgestellt haben und Netzwerksicherheitsgruppen (NSG) so konfiguriert haben, dass der von Azure Databricks nicht benötigte ausgehende Datenverkehr verweigert wird, müssen Sie eine zusätzliche ausgehende Regel für das Diensttag „AzureMonitor“ konfigurieren.

Notebookbeispiel: Datadog-Metriken

Datadog-Metriken

Sie können Datadog-Agents auf Computeknoten installieren, um Datadog-Metriken an Ihr Datadog-Konto zu senden. Im folgenden Notebook wird veranschaulicht, wie Sie einen Datadog-Agent mithilfe eines computespezifischen Init-Skripts in einem Compute installieren.

Um den Datadog-Agent auf allen Computes zu installieren, verwalten Sie das computebezogene Initialisierungsskript mithilfe einer Computerichtlinie.

Installieren des Datadog-Agent-Init-Skript-Notebooks

Notebook abrufen

Außerbetriebnahme von Spotinstanzen

Da Spotinstanzen Kosten senken können, ist das Erstellen von Computes mit Spotinstanzen anstelle von bedarfsbasierten Instanzen eine gängige Methode zum Ausführen von Aufträgen. Spotinstanzen können jedoch durch Planungsmechanismen des Cloudanbieters vorverlegt werden. Die Vorabbeendung von Spotinstanzen kann zu Problemen mit ausgeführten Aufträgen führen, z. B.:

  • Fehler beim Shuffle-Abruf
  • Shuffle-Datenverlust
  • RDD-Datenverlust
  • Auftragsfehler

Sie können die Außerbetriebnahme aktivieren, um diese Probleme zu beheben. Die Außerbetriebnahme nutzt die Benachrichtigung, die der Cloudanbieter normalerweise sendet, bevor eine Spotinstanz außer Betrieb genommen wird. Wenn eine Spotinstanz, die einen Executor enthält, eine Vorabbenachrichtigung empfängt, versucht der Außerbetriebsetzungsprozess, Shuffle- und RDD-Daten zu fehlerfreien Executors zu migrieren. Die Dauer vor der endgültigen Vorabbeendung beträgt je nach Cloudanbieter in der Regel 30 Sekunden bis 2 Minuten.

Databricks empfiehlt, die Datenmigration zu aktivieren, wenn die Außerbetriebnahme ebenfalls aktiviert ist. Im Allgemeinen nimmt die Wahrscheinlichkeit von Fehlern ab, wenn mehr Daten migriert werden, einschließlich Shuffle-Fetchingfehlern, Shuffle-Datenverlust und RDD-Datenverlust. Die Datenmigration kann auch zu einer geringeren Neuberechnung führen und Kosten sparen.

Hinweis

Die Außerbetriebnahme basiert auf dem Best-Effort-Prinzip und garantiert nicht, dass alle Daten vor der vorzeitigen Entfernung migriert werden können. Die Außerbetriebnahme kann nicht gegen Shuffle-Abruffehler garantieren, wenn ausgeführte Tasks Shuffledaten vom Executor abrufen.

Wenn die Außerbetriebnahme aktiviert ist, werden Aufgabenfehler, die durch die Vorabverlegung von Spotinstanzen verursacht werden, nicht zur Gesamtzahl der fehlgeschlagenen Versuche hinzugefügt. Aufgabenfehler, die durch die Vorabbeendung verursacht werden, werden nicht als fehlgeschlagene Versuche gezählt, da die Ursache des Fehlers außerhalb der Aufgabe liegt und nicht zu Auftragsfehlern führt.

Außerbetriebnahme aktivieren

Um die Außerbetriebnahme für ein Compute zu aktivieren, geben Sie auf der Registerkarte Spark unter Erweiterte Optionen auf der Benutzeroberfläche der Computekonfiguration die folgenden Eigenschaften ein. Informationen zu diesen Eigenschaften finden Sie unter Spark-Konfiguration.

  • Um die Außerbetriebnahme für Anwendungen zu aktivieren, geben Sie diese Eigenschaft in das Feld Spark-Konfiguration ein:

    spark.decommission.enabled true
    
  • Um die Shuffle-Datenmigration während der Außerbetriebnahme zu aktivieren, geben Sie diese Eigenschaft in das Feld Spark-Konfiguration ein:

    spark.storage.decommission.enabled true
    spark.storage.decommission.shuffleBlocks.enabled true
    
  • Um die RDD-Cache-Datenmigration während der Außerbetriebnahme zu aktivieren, geben Sie diese Eigenschaft in das Feld Spark-Konfiguration ein:

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

    Hinweis

    Wenn die RDD StorageLevel-Replikation auf mehr als 1 festgelegt ist, empfiehlt Databricks nicht, die RDD-Datenmigration zu aktivieren, da die Replikate sicherstellen, dass RDDs keine Daten verlieren.

  • Um die Außerbetriebnahme für Worker zu aktivieren, geben Sie diese Eigenschaft in das Feld Umgebungsvariablen ein :

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

Anzeigen des Außerbetriebnahmestatus und der Verlustursache auf der Benutzeroberfläche

Um über die Benutzeroberfläche auf den Außerbetriebnahmestatus eines Workers zu zugreifen, navigieren Sie zur Registerkarte Spark Compute UI – Master.

Wenn die Außerbetriebnahme abgeschlossen ist, können Sie den Verlustgrund des Executors auf der Registerkarte Spark-Benutzeroberfläche > Executors auf der Seite mit den Computedetails anzeigen.