Serverlose Dataproc-Arbeitslasten überwachen und Fehler beheben

Sie können Dataproc Serverless Spark-Batcharbeitslasten mithilfe der Informationen und Tools, die in den folgenden Abschnitten erläutert werden.

Persistent History Server

Dataproc Serverless for Spark erstellt die Rechenressourcen, die zum Ausführen einer Arbeitslast erforderlich sind, führt die Arbeitslast für diese Ressourcen aus und löscht die Ressourcen, wenn die Arbeitslast fertig ist. Arbeitslastmesswerte und -ereignisse bleiben nach Abschluss einer Arbeitslast nicht erhalten. Sie können jedoch ein Persistent History Server (PHS) zum Aufbewahren des Arbeitslast-Anwendungsverlaufs (Ereignis) Logs) in Cloud Storage.

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. Component Gateway verwenden um eine Verbindung zum PHS herzustellen, um Anwendungsdetails, Planerphasen, Details auf Aufgabenebene und Umgebungs- und Executor-Informationen.

Dataproc Serverless für Spark-Logs

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

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

Beispiel für eine Batchauswahl im Metrics Explorer

Weitere Informationen Siehe Dataproc-Logs.

Serverlose Dataproc-Audit-Logs

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

Arbeitslastmesswerte

Standardmäßig ermöglicht Dataproc Serverless for Spark die Erfassung von verfügbaren Spark-Messwerten es sei denn, Sie verwenden Attribute der Spark-Messwerterfassung um die Sammlung von einem oder mehreren Spark-Messwerten zu deaktivieren oder zu überschreiben.

Sie können die Arbeitslastmesswerte über die Metrics Explorer oder den Seite Batch-Details in der Google Cloud Console.

Batchmesswerte

Die batch-Ressourcenmesswerte von Dataproc geben Einblick in Batchressourcen, wie z. B. die Anzahl der Batch-Executors. Batchmesswerten ist das Präfix dataproc.googleapis.com/batch

Beispiel für einen Batchmesswert in Metrics Explorer

Spark-Messwerte

Verfügbare Spark-Messwerte enthalten Spark-Treiber- und Executor-Messwerte sowie Systemmesswerte. Verfügbare Spark-Messwerte sind mit Präfix mit 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 bei der Arbeitslast informiert zu werden.

Diagramme erstellen

Sie können Diagramme erstellen, in denen Arbeitslastmesswerte visualisiert werden. Verwenden Sie dazu die Methode Metrics Explorer in der Google Cloud Console So können Sie zum Beispiel Erstellen Sie ein Diagramm zur Anzeige von disk:bytes_used und filtern Sie dann nach batch_id.

Cloud Monitoring

Monitoring verwendet Arbeitslastmetadaten und -messwerte für Statistiken über den Zustand und die Leistung von Dataproc Serverless für Spark-Arbeitslasten. Zu den Arbeitslastmesswerten gehören Spark-, Batch- und Vorgangsmesswerte.

Sie können Cloud Monitoring in der Google Cloud Console verwenden. um Messwerte zu untersuchen, Diagramme hinzuzufügen, Dashboards zu erstellen und Benachrichtigungen zu erstellen.

Dashboards erstellen

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

Erweiterte Fehlerbehebung (Vorabversion)

In diesem Abschnitt wird die erweiterte Fehlerbehebung behandelt. (Vorabversion), die in der Google Cloud Console verfügbar. Zu diesen Funktionen gehören Mit Gemini unterstützte Fehlerbehebung für Dataproc Serverless Das ist Teil des Gemini in BigQuery.

Zugriff auf Vorschaufunktionen

So melden Sie sich für die Vorabversion der erweiterten Funktionen zur Fehlerbehebung, füllen Sie das Pre-GA-Registrierung für Gemini in BigQuery aus. Sobald das Formular genehmigt wurde, haben die im Formular aufgeführten Projekte Zugriff auf Funktionen in der Vorabversion ansehen.

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 (GA):

Vorabankündigungen zu Abbuchungen von Google Analytics werden an die E-Mail-Adresse gesendet, die Sie das Anmeldeformular für die Vorschau.

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"
    
  • Mit Gemini unterstützte Fehlerbehebung für Dataproc Serverless aktivieren:Sie aktivieren die durch Gemini gestützte Fehlerbehebung. Fehlerbehebung für Dataproc Serverless, wenn Sie jede wiederkehrende Spark-Batch-Arbeitslast mithilfe der Google Cloud Console, gcloud CLI oder Dataproc API. Sobald dieses Feature für eine wiederkehrende Batcharbeitslast aktiviert ist, speichert eine Kopie der Arbeitslastlogs 30 Tage lang und verwendet die gespeicherten Logdaten, um eine von Gemini unterstützte Fehlerbehebung für die Arbeitslast zu ermöglichen. Informationen zum Inhalt des Spark-Arbeitslastlogs finden Sie unter Dataproc Serverless for Spark-Logs

Console

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

  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 Kohortenname, der den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten identifiziert. Die Gemini-gestützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweise TPCH-Query1 als Kohortenname für eine geplante Arbeitslast, die einen tägliche TPC-H-Abfrage.

  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 die folgende gcloud CLI aus gcloud dataproc batches submit Befehl lokal in einem Terminalfenster oder in Cloud Shell ausführen 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: die Region wo die Arbeitslast ausgeführt wird.
  • COHORT: der Name der Kohorte, identifiziert den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten. Die durch Gemini unterstützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet, die gesendet werden mit diesem Kohortennamen. Geben Sie beispielsweise TPCH Query 1 an. als Kohortenname für eine geplante Arbeitslast, die täglich TPC-H-Abfrage.

API

RuntimeConfig.cohort einschließen Name in batches.create Anfrage, um die durch Gemini unterstützte Fehlerbehebung für jedes wiederkehrende Spark zu aktivieren Batch-Arbeitslast. Die durch Gemini unterstützte Analyse wird auf die zweite und nachfolgende Arbeitslasten angewendet mit diesem Kohortennamen. Geben Sie z. B. TPCH-Query1 als Kohortennamen an. für eine geplante Arbeitslast, die täglich TPC-H-Abfrage.

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 der In der Google Cloud Console werden die Seiten Batchdetails und Batches aufgelistet.

  • Tab Untersuchen: Der Tab „Untersuchen“ auf der Seite Batchdetails finden Sie einen Bereich mit der Statusübersicht (Vorabversion) mit Folgendem: Von Gemini unterstützte Bereiche zur Fehlerbehebung:

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

    Prüfungsbereich für automatische Abstimmung.

    • Was geschieht jetzt? und Was kann ich tun? Klicken Sie auf Gemini fragen, um Empfehlungen zum Beheben fehlgeschlagener Arbeitslasten anzufordern oder erfolgreiche, aber langsame Arbeitslasten verbessern.

    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 ergreifen können, um ein fehlgeschlagenes Problem zu beheben. oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast verbessern.

    Von Gemini für Google Cloud generierte Statistiken.

  • Spalten zur Fehlerbehebung mit Gemini-Unterstützung:Im Rahmen der Vorschauversion auf der Dataproc-Seite mit der Batches-Liste in der Die Google Cloud Console enthält What was Autotuned, What is happening now?, und What can I do about it?.

    In Batches werden Gemini-Spalten aufgelistet.

    Die Schaltfläche Gemini fragen wird angezeigt und nur aktiviert,wenn ein abgeschlossener Batch den Status Failed, Cancelled oder Succeeded hat. Wenn Sie auf Gemini fragen klicken, wird Gemini für Google Cloud erstellt 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 ergreifen können, um ein fehlgeschlagenes Problem zu beheben. oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast verbessern.

Highlights von Batch-Messwerten

Im Rahmen der Vorabversion wird die Seite Batchdetails in der Google Cloud Console angezeigt. enthält Diagramme, in denen wichtige Batch-Arbeitslastmesswerte angezeigt werden. Der Messwert Diagramme werden nach Abschluss des Batches mit Werten gefüllt.

Dashboard mit Batchmesswerten.

Messwerttabelle

In der folgenden Tabelle sind die Spark-Arbeitslastmesswerte aufgeführt, die auf der Seite Batchdetails in der Google Cloud Console enthält. Dort wird beschrieben, wie der Messwert -Werte einen Einblick in den Arbeitslaststatus und die Leistung geben.

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 erforderlichen Executors, die möglicherweise erforderlich sind, im Vergleich zu den Anzahl der ausgeführten Executors. Ein großer Unterschied zwischen erforderlichen und laufenden Executors 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.

Jobprotokolle

Im Rahmen der Vorabversion wird die Seite Batchdetails in der Google Cloud Console angezeigt. Listet Joblogs (Batcharbeitslast) auf. Die Logs enthalten gefilterte Warnungen und Fehler der Arbeitslastausgabe und Spark-Logs. Du kannst „Protokoll“ auswählen Schweregrad: Fügen Sie einen Filter hinzu und klicken Sie auf das Symbol Im Log-Explorer ansehen. zum Öffnen der ausgewählten Batchlogs in der Log-Explorer:

Beispiel: Der Log-Explorer wird geöffnet, nachdem Sie Errors als Schweregrad ausgewählt haben. auf der Seite Batch-Details in der Google Cloud Console.

Batch-Log-Explorer

Spark-UI (Vorschau)

Wenn Sie Ihr Projekt in der Vorschau Spark-UI registriert haben können Sie die Spark-UI in der Google Cloud Console aufrufen, zum Erstellen eines Dataproc PHS-Cluster (Persistent History Server). Die Spark-UI erfasst Spark-Ausführungsdetails aus Batcharbeitslasten. Weitere Informationen finden Sie im Nutzerhandbuch, das an registrierte Kunden verteilt wird. als Teil der Vorabversion der Spark-UI.