Serverlose Dataproc-Arbeitslasten überwachen und Fehler beheben

Sie können Dataproc Serverless für Spark-Batcharbeitslasten mithilfe der Informationen und Tools überwachen und Fehler beheben, die in den folgenden Abschnitten beschrieben werden.

Persistent History Server

Dataproc Serverless for Spark erstellt die Rechenressourcen, die zum Ausführen einer Arbeitslast erforderlich sind, und führt die Arbeitslast für diese Ressourcen aus. Nach Abschluss der Arbeitslast werden die Ressourcen gelöscht. Arbeitslastmesswerte und -ereignisse bleiben nach Abschluss einer Arbeitslast nicht erhalten. Sie können jedoch einen Persistent History Server (PHS) verwenden, um den Arbeitslastanwendungsverlauf (Ereignislogs) in Cloud Storage aufzubewahren.

So verwenden Sie einen PHS mit einer Batcharbeitslast:

  1. Erstellen Sie einen Dataproc Persistent History Server (PHS).

  2. Geben Sie Ihren PHS an, wenn Sie eine Arbeitslast senden.

  3. Stellen Sie über Component Gateway eine Verbindung zum PHS her, um Anwendungsdetails, Planerphasen, Details auf Aufgabenebene sowie Umgebungs- und Executor-Informationen anzusehen.

Dataproc Serverless für Spark-Logs

Logging ist in Dataproc Serverless for Spark standardmäßig aktiviert und Arbeitslastlogs bleiben erhalten, nachdem eine Arbeitslast abgeschlossen wurde. Dataproc Serverless for Spark erfasst Arbeitslastlogs in Cloud Logging. Sie können im Log-Explorer unter der Ressource Cloud Dataproc Batch auf die Logs der Arbeitslast spark, agent, output und container zugreifen.

Beispiel für einen Dataproc Serverless-Batch für Spark:

Beispiel für eine Batchauswahl im Metrics Explorer

Weitere Informationen finden Sie unter Dataproc-Logs.

Serverlose Dataproc-Audit-Logs

Informationen zu Dataproc Serverless-Audit-Logs finden Sie unter Dataproc-Audit-Logging.

Arbeitslastmesswerte

Standardmäßig aktiviert Dataproc Serverless for Spark die Erfassung verfügbarer Spark-Messwerte, es sei denn, Sie verwenden Spark-Messwerterfassungsattribute, um die Sammlung eines oder mehrerer Spark-Messwerte zu deaktivieren oder zu überschreiben.

Sie können sich Arbeitslastmesswerte über den Metrics Explorer oder die Seite Batchdetails in der Google Cloud Console ansehen.

Batchmesswerte

Die Dataproc-batch-Ressourcenmesswerte bieten Einblicke in Batchressourcen, z. B. die Anzahl der Batch-Executors. Batchmesswerten ist dataproc.googleapis.com/batch vorangestellt.

Beispiel für einen Batchmesswert in Metrics Explorer

Spark-Messwerte

Verfügbare Spark-Messwerte umfassen Spark-Treiber- und Executor-Messwerte sowie Systemmesswerte. Verfügbare Spark-Messwerte haben das Präfix custom.googleapis.com/.

Beispiel für einen Spark-Messwert im Metrics Explorer

Benachrichtigungen zu Messwerten einrichten

Sie können Dataproc-Messwertbenachrichtigungen erstellen, um über Probleme mit Arbeitslasten informiert zu werden.

Diagramme erstellen

Mit dem Metrics Explorer in der Google Cloud Console können Sie Diagramme erstellen, in denen Arbeitslastmesswerte visualisiert werden. Sie können beispielsweise ein Diagramm erstellen, um disk:bytes_used anzuzeigen und dann nach batch_id filtern.

Cloud Monitoring

Monitoring verwendet Arbeitslastmetadaten und -messwerte, um Informationen zum Zustand und zur Leistung von Dataproc Serverless für Spark-Arbeitslasten bereitzustellen. Zu den Arbeitslastmesswerten gehören Spark-, Batch- und Vorgangsmesswerte.

In der Google Cloud Console können Sie mit Cloud Monitoring Messwerte untersuchen, Diagramme hinzufügen, Dashboards und Benachrichtigungen erstellen.

Dashboards erstellen

Sie können ein Dashboard erstellen, um Arbeitslasten mit Messwerten aus mehreren Projekten und verschiedenen Google Cloud-Produkten zu überwachen. Weitere Informationen finden Sie unter Benutzerdefinierte Dashboards erstellen und verwalten.

Erweiterte Fehlerbehebung (Vorabversion)

In diesem Abschnitt werden die erweiterten Features zur Fehlerbehebung (Vorabversion) beschrieben, die in der Google Cloud Console verfügbar sind. Zu diesen Features gehört die durch Gemini unterstützte Fehlerbehebung für Dataproc Serverless, die Teil von Gemini in BigQuery ist.

Zugriff auf Vorschaufunktionen

Damit Sie sich für die Vorabversion der erweiterten Fehlerbehebungsfunktionen registrieren können, müssen Sie das Anmeldeformular für Gemini in BigQuery Pre-GA ausfüllen und einreichen. Sobald das Formular genehmigt wurde, haben die im Formular aufgeführten Projekte Zugriff auf Vorschaufunktionen.

Preisvorschau

Für die Teilnahme an der Vorschau fallen keine zusätzlichen Kosten an. Für die folgenden Vorschaufunktionen fallen Gebühren an, sobald diese allgemein verfügbar werden:

Eine Vorabankündigung über GA-Gebühren wird an die E-Mail-Adresse gesendet, die Sie im Anmeldeformular für die Vorschau angegeben haben.

Anforderungen an Funktionen

  • Registrieren: Du musst dich registrieren, um die Funktion nutzen zu können.

  • Berechtigung: Sie benötigen die Berechtigung dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Durch Gemini unterstützte Fehlerbehebung für Dataproc Serverless aktivieren:Sie aktivieren die durch Gemini unterstützte Fehlerbehebung für Dataproc Serverless, wenn Sie jede wiederkehrende Spark-Batcharbeitslast über die Google Cloud Console, die gcloud CLI oder die Dataproc API senden. Nachdem dieses Feature für eine wiederkehrende Batcharbeitslast aktiviert wurde, speichert Dataproc eine Kopie der Arbeitslastlogs für 30 Tage und verwendet die gespeicherten Logdaten, um mit Gemini eine Fehlerbehebung für die Arbeitslast durchzuführen. Informationen zum Inhalt von Spark-Arbeitslastlogs finden Sie unter Dataproc Serverless for Spark-Logs.

Console

Führen Sie die folgenden Schritte aus, um die von Gemini unterstützte Fehlerbehebung für jede wiederkehrende Spark-Batcharbeitslast zu aktivieren:

  1. Rufen Sie in der Google Cloud Console die Dataproc-Seite Batches auf.

    Zu Dataproc-Batches

  2. Klicken Sie zum Erstellen einer Batcharbeitslast auf Erstellen.

  3. Geben Sie im Abschnitt Container den Namen der Kohorte ein. Dadurch wird der Batch als Teil einer Reihe wiederkehrender Arbeitslasten identifiziert. Die durch Gemini unterstützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen gesendet werden. Geben Sie beispielsweise TPCH-Query1 als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt.

  4. Füllen Sie die anderen Abschnitte der Seite Batch erstellen nach Bedarf aus und klicken Sie dann auf Senden. Weitere Informationen finden Sie unter Batcharbeitslast senden.

gcloud

Führen Sie den folgenden gcloud dataproc batches submit-Befehl der gcloud CLI lokal in einem Terminalfenster oder in Cloud Shell aus, um die durch Gemini unterstützte Fehlerbehebung für jede wiederkehrende Spark-Batcharbeitslast zu aktivieren:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    other arguments ...

Ersetzen Sie Folgendes:

  • COMMAND: der Spark-Arbeitslasttyp, z. B. Spark, PySpark, Spark-Sql oder Spark-R.
  • REGION ist die Region, in der die Arbeitslast ausgeführt wird.
  • COHORT: der Kohortenname, der den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten identifiziert. Die durch Gemini unterstützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen gesendet werden. Geben Sie beispielsweise TPCH Query 1 als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt.

API

Fügen Sie den Namen RuntimeConfig.cohort in eine batches.create-Anfrage ein, um die durch Gemini unterstützte Fehlerbehebung für jede wiederkehrende Spark-Batcharbeitslast zu aktivieren. Die durch Gemini unterstützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweise TPCH-Query1 als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt.

Beispiel:

...
runtimeConfig:
  cohort: TPCH-Query1
...

Durch Gemini unterstützte Fehlerbehebung für Dataproc Serverless

Die folgenden durch Gemini unterstützten Vorschaufunktionen zur Fehlerbehebung sind auf den Listenseiten Batchdetails und Batches in der Google Cloud Console verfügbar.

  • Tab Untersuchen: Der Tab „Untersuchen“ auf der Seite Batchdetails enthält einen Abschnitt zum Zustand (Vorschau) mit den folgenden durch Gemini unterstützten Fehlerbehebungsbereichen:

    • Was wurde automatisch abgestimmt? Wenn Sie für eine oder mehrere Arbeitslasten die automatische Abstimmung aktiviert haben, werden in diesem Bereich die neuesten automatischen Abstimmungsänderungen angezeigt, die auf laufende, abgeschlossene und fehlgeschlagene Arbeitslasten angewendet wurden.

    Prüfungsbereich für automatische Abstimmung.

    • Was geschieht jetzt? und Was kann ich tun? Klicken Sie auf Gemini fragen, um Empfehlungen anzufordern, wie Sie fehlgeschlagene Arbeitslasten korrigieren oder erfolgreiche, aber langsame Arbeitslasten verbessern können.

    Schaltfläche „Gemini fragen“.

    Wenn Sie auf Gemini fragen klicken, generiert Gemini für Google Cloud eine Zusammenfassung aller Fehler, Anomalien oder Highlights aus Arbeitslastlogs, Spark-Messwerten und Spark-Ereignissen. Gemini für Google Cloud kann auch eine Liste mit empfohlenen Schritten anzeigen, die Sie unternehmen können, um eine fehlgeschlagene Arbeitslast zu beheben oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast zu verbessern.

    Von Gemini für Google Cloud generierte Statistiken.

  • Durch Gemini unterstützte Fehlerbehebungsspalten: Als Teil der Vorabversion enthält die Seite mit der Dataproc-Liste Batches in der Google Cloud Console die Spalten What was Autotuned, What is happening now? und What can I do about it?.

    In Batches werden Gemini-Spalten aufgelistet.

    Die Schaltfläche Ask Gemini wird nur angezeigt,wenn ein abgeschlossener Batch den Status Failed, Cancelled oder Succeeded hat. Wenn Sie auf Gemini fragen klicken, generiert Gemini für Google Cloud eine Zusammenfassung aller Fehler, Anomalien oder Highlights aus Arbeitslastlogs, Spark-Messwerten und Spark-Ereignissen. Gemini für Google Cloud kann auch eine Liste mit empfohlenen Schritten anzeigen, die Sie unternehmen können, um eine fehlgeschlagene Arbeitslast zu beheben oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast zu verbessern.

Highlights von Batch-Messwerten

Im Rahmen der Vorabversion enthält die Seite Batchdetails in der Google Cloud Console Diagramme, in denen wichtige Messwerte für Batch-Arbeitslasten angezeigt werden. Die Messwertdiagramme werden nach Abschluss des Batches mit Werten gefüllt.

Dashboard mit Batchmesswerten.

Messwerttabelle

In der folgenden Tabelle sind die Spark-Arbeitslastmesswerte aufgeführt, die in der Google Cloud Console auf der Seite Batchdetails angezeigt werden. Außerdem wird beschrieben, wie Messwerte einen Einblick in den Arbeitslaststatus und die Leistung liefern können.

Messwert Was wird angezeigt?
Messwerte auf Executor-Ebene
Verhältnis der JVM-GC-Zeit zur Laufzeit Dieser Messwert zeigt das Verhältnis der Zeit von JVM-GC (automatische Speicherbereinigung) zur Laufzeit pro Executor. Hohe Verhältnisse können auf Speicherlecks bei Aufgaben hinweisen, die auf bestimmten Executors oder ineffizienten Datenstrukturen ausgeführt werden, was zu einer hohen Abwanderung von Objekten führen kann.
Übergegebene Laufwerkbyte Dieser Messwert zeigt die Gesamtzahl der Laufwerkbyte, die an verschiedene Executors übergeben werden. Wenn in einem Executor eine große Menge an übergebenen Laufwerkbyte angezeigt wird, kann dies auf eine Datenverzerrung hindeuten. Wenn der Messwert im Laufe der Zeit ansteigt, kann dies darauf hindeuten, dass es Phasen mit Speicherauslastung oder Speicherlecks gibt.
Gelesene und geschriebene Bytes Dieser Messwert zeigt die geschriebenen Byte im Vergleich zu den gelesenen Byte pro Executor. Große Abweichungen bei gelesenen oder geschriebenen Byte können auf Szenarien hinweisen, bei denen replizierte Joins zur Datenverstärkung auf bestimmten Executors führen.
Gelesene und geschriebene Datensätze Dieser Messwert zeigt gelesene und geschriebene Datensätze pro Executor. Große Zahlen mit einer geringen Anzahl geschriebener Datensätze können auf einen Engpass in der Verarbeitungslogik bei bestimmten Executors hinweisen, was dazu führt, dass Datensätze während des Wartens gelesen werden. Executors, die dauerhaft bei Lese- und Schreibvorgängen Verzögerungen auftreten, können auf Ressourcenkonflikte auf diesen Knoten oder auf executor-spezifische Codeineffizienzen hinweisen.
Verhältnis der Shuffle-Schreibzeit zur Ausführungszeit Der Messwert zeigt die Zeit, die der Executor in der Shuffle-Laufzeit im Vergleich zur Gesamtlaufzeit verbracht hat. Wenn dieser Wert für einige Executors hoch ist, kann dies auf eine Datenverzerrung oder eine ineffiziente Datenserialisierung hindeuten. Sie können Phasen mit langen Shuffle-Schreibzeiten in der Spark-UI identifizieren. Suchen Sie nach Ausreißeraufgaben in diesen Phasen, die mehr als die durchschnittliche Ausführungszeit benötigen. Prüfen Sie, ob die Executors mit langen Shuffle-Schreibzeiten auch eine hohe Laufwerks-E/A-Aktivität zeigen. Eine effizientere Serialisierung und zusätzliche Partitionierungsschritte können helfen. Sehr große Eintragsschreibvorgänge im Vergleich zu Eintragslesevorgängen können auf unbeabsichtigte Datenduplizierung aufgrund ineffizienter Joins oder falscher Transformationen hinweisen.
Messwerte auf Anwendungsebene
Phasenfortschritt Dieser Messwert zeigt die Anzahl der Phasen in den fehlgeschlagenen, wartenden und laufenden Phasen. Eine große Anzahl fehlgeschlagener oder wartender Phasen kann auf eine Datenverzerrung hinweisen. Suchen Sie nach Datenpartitionen und beheben Sie den Grund für den Phasenfehler mithilfe des Tabs Stages (Phasen) in der Spark-UI.
Batch-Spark-Executors Dieser Messwert zeigt die Anzahl der möglicherweise erforderlichen Executors im Vergleich zur Anzahl der ausgeführten Executors. Ein großer Unterschied zwischen erforderlichen und ausgeführten Executors kann auf Probleme beim Autoscaling hinweisen.
Messwerte auf VM-Ebene
Verwendeter Arbeitsspeicher Dieser Messwert zeigt den Prozentsatz des verwendeten VM-Arbeitsspeichers. Wenn der Masterprozentsatz hoch ist, kann dies darauf hindeuten, dass der Treiber unter Speicherauslastung steht. Bei anderen VM-Knoten kann ein hoher Prozentsatz darauf hinweisen, dass den Executors der Arbeitsspeicher ausgeht, was zu einer hohen Laufwerksauslastung und einer langsameren Arbeitslastlaufzeit führen kann. Verwenden Sie die Spark-UI zum Analysieren von Executors, um eine hohe GC-Zeit und hohe Aufgabenfehler zu prüfen. Debuggen Sie außerdem Spark-Code für das Caching großer Datasets und für unnötige Übertragungen von Variablen.

Joblogs

Im Rahmen der Vorabversion werden auf der Seite Batchdetails in der Google Cloud Console Joblogs (Batcharbeitslast) aufgelistet. Die Logs enthalten Warnungen und Fehler, die aus der Arbeitslastausgabe und Spark-Logs gefiltert wurden. Sie können den Schweregrad für Logs auswählen, einen Filter hinzufügen und dann auf das Symbol Im Log-Explorer ansehen klicken,um die ausgewählten Batchlogs im Log-Explorer zu öffnen.

Beispiel: Der Log-Explorer wird geöffnet, nachdem Sie in der Google Cloud Console auf der Seite Batchdetails in der Auswahl für den Schweregrad Errors ausgewählt haben.

Batch-Log-Explorer

Spark-UI (Vorschau)

Wenn Sie Ihr Projekt in der Vorabversion der Spark-UI registriert haben, können Sie die Spark-UI in der Google Cloud Console aufrufen, ohne einen Dataproc-Cluster für PHS (Persistent History Server) erstellen zu müssen. Die Spark-UI erfasst Spark-Ausführungsdetails aus Batcharbeitslasten. Weitere Informationen finden Sie im Nutzerhandbuch, das als Teil des Spark-UI-Vorschaurelease an registrierte Kunden ausgegeben wird.