Batcharbeitslasten überwachen und Fehler beheben

In diesem Dokument wird beschrieben, wie Sie Batch-Arbeitslasten für Serverless for Apache Spark mithilfe der Spark-UI überwachen und Fehler beheben.

Spark-UI

In der Spark-UI werden Apache Spark-Ausführungsdetails aus Serverless for Apache Spark-Batcharbeitslasten erfasst. Für die Spark-UI-Funktion, die standardmäßig aktiviert ist, fallen keine Gebühren an.

Von der Spark UI-Funktion erfasste Daten werden 90 Tage lang aufbewahrt. Mit dieser Weboberfläche können Sie Spark-Arbeitslasten überwachen und debuggen, ohne einen Persistent History Server erstellen zu müssen.

Erforderliche IAM-Berechtigungen und -Rollen (Identity and Access Management)

Die folgenden Berechtigungen sind erforderlich, um die Spark-UI-Funktion mit Batcharbeitslasten zu verwenden.

  • Berechtigung zur Datenerhebung: dataproc.batches.sparkApplicationWrite. Diese Berechtigung muss dem Dienstkonto gewährt werden, mit dem Batcharbeitslasten ausgeführt werden. Diese Berechtigung ist in der Rolle Dataproc Worker enthalten, die dem Compute Engine-Standarddienstkonto, das standardmäßig von Serverless for Apache Spark verwendet wird, automatisch zugewiesen wird (siehe Dienstkonto für Serverless for Apache Spark). Wenn Sie jedoch ein benutzerdefiniertes Dienstkonto für Ihren Batch-Arbeitslast angeben, müssen Sie diesem Dienstkonto die Berechtigung dataproc.batches.sparkApplicationWrite hinzufügen (in der Regel, indem Sie dem Dienstkonto die Dataproc-Rolle Worker zuweisen).

  • Berechtigung für den Zugriff auf die Spark-UI: dataproc.batches.sparkApplicationRead. Diese Berechtigung muss einem Nutzer gewährt werden, damit er in derGoogle Cloud -Konsole auf die Spark-UI zugreifen kann. Diese Berechtigung ist in den Rollen Dataproc Viewer, Dataproc Editor und Dataproc Administrator enthalten. Wenn Sie die Spark-UI in der Google Cloud -Konsole öffnen möchten, benötigen Sie eine dieser Rollen oder eine benutzerdefinierte Rolle mit dieser Berechtigung.

Spark-UI öffnen

Die Seite „Spark UI“ ist in der Google Cloud Console für Batcharbeitslasten verfügbar.

  1. Rufen Sie die Seite Serverless for Apache Spark interactive sessions (Serverlose interaktive Sitzungen für Apache Spark) auf.

    Zu Dataproc-Batches

  2. Klicken Sie auf eine Batch-ID, um die Seite mit den Batchdetails zu öffnen.

  3. Klicken Sie im oberen Menü auf Spark-Benutzeroberfläche ansehen.

Die Schaltfläche Spark-UI ansehen ist in den folgenden Fällen deaktiviert:

Persistent History Server

Bei Serverless for Apache Spark werden die Rechenressourcen erstellt, die zum Ausführen einer Arbeitslast erforderlich sind. Die Arbeitslast wird auf diesen Ressourcen ausgeführt und die Ressourcen werden nach Abschluss der Arbeitslast gelöscht. Arbeitslastmesswerte und ‑ereignisse bleiben nach Abschluss einer Arbeitslast nicht erhalten. Sie können jedoch einen Persistent History Server (PHS) verwenden, um den Anwendungsverlauf von Arbeitslasten (Ereignisprotokolle) in Cloud Storage beizubehalten.

So verwenden Sie ein PHS mit einer Batch-Arbeitslast:

  1. Dataproc Persistent History Server (PHS) erstellen

  2. Geben Sie Ihr PHS an, wenn Sie eine Arbeitslast einreichen.

  3. Verwenden Sie das Component Gateway, um eine Verbindung zum PHS herzustellen und Anwendungsdetails, Planungsphasen, Details auf Aufgabenebene sowie Informationen zur Umgebung und zum Executor aufzurufen.

Serverless for Apache Spark-Logs

Die Protokollierung ist in Serverless for Apache Spark standardmäßig aktiviert und Arbeitslastlogs bleiben nach Abschluss einer Arbeitslast erhalten. Serverless for Apache Spark erfasst Arbeitslastlogs in Cloud Logging. Sie können auf Serverless for Apache Spark-Logs über die Ressource Cloud Dataproc Batch im Log-Explorer zugreifen.

Serverless for Apache Spark-Logs abfragen

Der Log-Explorer in der Google Cloud Console bietet einen Abfragebereich, mit dem Sie eine Abfrage erstellen können, um Batch-Workload-Logs zu untersuchen. So erstellen Sie eine Abfrage, um Batch-Arbeitslastprotokolle zu untersuchen:

  1. Zum Log-Explorer

  2. Ihr aktuelles Projekt ist ausgewählt. Sie können auf Projektbereich eingrenzen klicken, um ein anderes Projekt auszuwählen.
  3. Batch-Protokollabfrage definieren

    • Verwenden Sie die Filtermenüs, um nach einer Batch-Arbeitslast zu filtern.

      1. Wählen Sie unter Alle Ressourcen die Ressource Cloud Dataproc-Batch aus.

        1. Wählen Sie im Bereich Ressource auswählen den Batch LOCATION und dann die BATCH ID aus. Diese Batchparameter werden in der Google Cloud Console auf der Dataproc-Seite Batches aufgeführt.

        2. Klicken Sie auf Übernehmen.

        3. Geben Sie unter Lognamen auswählen im Feld Lognamen suchen dataproc.googleapis.com ein, um die abzufragenden Logtypen einzuschränken. Wählen Sie einen oder mehrere der aufgeführten Logdateinamen aus.

    • Verwenden Sie den Abfrageeditor, um nach VM-spezifischen Logs zu filtern.

      1. Geben Sie den Ressourcentyp und den VM-Ressourcennamen wie im folgenden Beispiel an:

        resource.type="cloud_dataproc_batch"
        labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
        
        Hinweise:

        • BATCH_UUID:Die Batch-UUID wird auf der Seite „Batchdetails“ in der Google Cloud Console aufgeführt. Diese Seite wird geöffnet, wenn Sie auf der Seite Batches auf die Batch-ID klicken.

        In den Batchlogs wird die Batch-UUID auch im VM-Ressourcennamen aufgeführt. Hier ein Beispiel aus einer batch-driver.log-Datei:

  4. Klicken Sie auf Abfrage ausführen.

Logtypen und Beispielabfragen für Serverless for Apache Spark

In der folgenden Liste werden verschiedene Logtypen für Serverless for Apache Spark beschrieben und für jeden Logtyp werden Beispielabfragen für den Log-Explorer bereitgestellt.

  1. dataproc.googleapis.com/output: Diese Logdatei enthält die Ausgabe von Batch-Workloads. Bei Serverless for Apache Spark wird die Batchausgabe in den Namespace output gestreamt und der Dateiname auf JOB_ID.driver.log festgelegt.

    Beispiel für eine Log-Explorer-Abfrage für Ausgabelogs:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Foutput"
    

  2. dataproc.googleapis.com/spark: Im Namespace spark werden Spark-Logs für Daemons und Executors zusammengefasst, die auf Master- und Worker-VMs des Dataproc-Clusters ausgeführt werden. Jeder Logeintrag enthält ein Komponentenlabel master, worker oder executor, um die Logquelle zu identifizieren:

    • executor: Protokolle von Ausführern von Nutzercode. In der Regel handelt es sich dabei um verteilte Logs.
    • master: Logs vom Spark-Master des eigenständigen Ressourcenmanagers, die den YARN-ResourceManager-Logs von Dataproc in Compute Engine ähneln.
    • worker: Logs vom Spark-Standalone-Ressourcenmanager-Worker, die den Dataproc-YARN-NodeManager-Logs in Compute Engine ähneln.

    Beispiel für eine Logs-Explorer-Abfrage für alle Logs im Namespace spark:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
    

    Beispiel für eine Log-Explorer-Abfrage für Spark-Standalone-Komponentenlogs im Namespace spark:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
    jsonPayload.component="COMPONENT"
    

  3. dataproc.googleapis.com/startup: Der Namespace startup enthält die Startlogs für Batch (Cluster). Alle Logs von Initialisierungsskripts sind enthalten. Komponenten werden anhand von Labels identifiziert, z. B.:

    startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
    
    Beispiel für eine Log-Explorer-Abfrage für Start-Logs auf einer bestimmten VM:
    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fstartup"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
    
  4. dataproc.googleapis.com/agent: Im agent-Namespace werden Dataproc-Agent-Logs zusammengefasst. Jeder Logeintrag enthält ein Dateinamenlabel, das die Logquelle identifiziert.

    Beispiel für eine Log-Explorer-Abfrage für Agent-Logs, die von einer bestimmten Worker-VM generiert wurden:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fagent"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
    

  5. dataproc.googleapis.com/autoscaler: Im Namespace autoscaler werden Autoscaler-Logs für Serverless for Apache Spark zusammengefasst.

    Beispiel für eine Log-Explorer-Abfrage für Agent-Logs, die von einer bestimmten Worker-VM generiert wurden:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fautoscaler"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
    

Weitere Informationen finden Sie unter Dataproc-Logs.

Audit-Logs für Serverless for Apache Spark

Informationen zu Audit-Logs für Serverless für Apache Spark finden Sie unter Dataproc-Audit-Logging.

Arbeitslastmesswerte

Standardmäßig werden mit Serverless for Apache Spark verfügbare Spark-Messwerte erfasst, sofern Sie nicht Eigenschaften für die Erfassung von Spark-Messwerten verwenden, um die Erfassung eines oder mehrerer Spark-Messwerte zu deaktivieren oder zu überschreiben.

Sie können Arbeitslastmesswerte im Metrics Explorer oder auf der Seite Batchdetails in der Google Cloud -Konsole aufrufen.

Batchmesswerte

Dataproc-batch-Ressourcenmesswerte geben Aufschluss über Batchressourcen wie die Anzahl der Batch-Executors. Batchmesswerte haben das Präfix dataproc.googleapis.com/batch.

Beispiel für Batch-Messwerte im 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 den Spark-Messwert im Metrics Explorer

Messwertbenachrichtigungen einrichten

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

Diagramme erstellen

Mit dem Metrics Explorer in derGoogle Cloud -Konsole können Sie Diagramme erstellen, in denen Arbeitslastmesswerte visualisiert werden. Sie können beispielsweise ein Diagramm erstellen, in dem disk:bytes_used dargestellt wird, und dann nach batch_id filtern.

Cloud Monitoring

Monitoring verwendet Arbeitslastmetadaten und ‑messwerte, um Einblicke in den Zustand und die Leistung von Serverless for Apache Spark-Arbeitslasten zu geben. Zu den Arbeitslastmesswerten gehören Spark-Messwerte, Batchmesswerte 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 mithilfe von Messwerten aus mehreren Projekten und verschiedenen Google Cloud -Produkten zu überwachen. Weitere Informationen finden Sie unter Benutzerdefinierte Dashboards erstellen und verwalten.

Gemini Cloud Assist (Vorabversion)

Gemini Cloud Assist Investigations ist in der Vorabversion verfügbar. Die Funktion „Untersuchungen“ für Serverless for Apache Spark-Batches ist in den folgenden Regionen verfügbar:

  • asia-east1
  • asia-southeast1
  • europe-west1
  • us-central1

Diese Funktion nutzt die erweiterten Funktionen von Gemini, um Sie bei den folgenden Aufgaben zur Fehlerbehebung zu unterstützen:

  • Erstellen Sie Fehlerbehebungsuntersuchungen aus der Liste Batch und den Seiten Batchdetails in der Google Cloud -Konsole für fehlgeschlagene und langsame serverlose Spark-Batch-Jobs aus mehreren Quellen, einschließlich Chat und Protokollen.
  • Fügen Sie einem Problem eine Kontextbeschreibung in natürlicher Sprache hinzu, bevor Sie eine Untersuchung durchführen.
  • Führen Sie Untersuchungen durch, um Gemini-Insights zu den Ursachen von Problemen und empfohlene Korrekturen zu erhalten.
  • Supportanfragen nahtlos erstellen

Weitere Informationen finden Sie unter Gemini Cloud Assist-Prüfungen.

Zugriff auf Vorschaufunktionen

Wenn Sie sich für die Vorabversion der Gemini Cloud Assist-Funktionen registrieren möchten, senden Sie das Formular für das Trusted Tester-Programm von Gemini Cloud Assist. Das Google Cloud-Team wird sich mit Ihnen in Verbindung setzen, um Ihnen die weiteren Schritte zu erläutern.

Erweiterte Fehlerbehebung (Vorschau)

In diesem Abschnitt werden die erweiterten Funktionen zur Fehlerbehebung (Vorschau) beschrieben, die in der Google Cloud -Konsole verfügbar sind. Zu diesen Funktionen gehört die Gemini-basierte Fehlerbehebung für Serverless for Apache Spark, die Teil des Angebots Gemini in BigQuery ist.

Zugriff auf Vorschaufunktionen

Wenn Sie sich für die Vorabversion der erweiterten Fehlerbehebungsfunktionen registrieren möchten, senden Sie das Formular für das Trusted Tester-Programm von Gemini Cloud Assist ein. Das Google Cloud-Team wird sich mit Ihnen in Verbindung setzen, um Ihnen die weiteren Schritte zu erläutern.

Preise ansehen

Für die Teilnahme an der privaten Vorschau fallen keine zusätzlichen Kosten an. Für die folgenden Funktionen fallen Gebühren an, wenn sie allgemein verfügbar sind.

Vorabbenachrichtigungen zur allgemeinen Verfügbarkeit und zu den Gebühren für die allgemeine Verfügbarkeit werden an die E-Mail-Adresse gesendet, die Sie im Anmeldeformular für die Vorschauversion angegeben haben.

Anforderungen an Funktionen

  • Registrierung: Sie müssen sich für die Funktion registrieren.

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

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Gemini-gestützte Fehlerbehebung für Serverless for Apache Spark aktivieren:Sie aktivieren die Gemini-gestützte Fehlerbehebung für Serverless for Apache Spark, wenn Sie jede wiederkehrende Spark-Batcharbeitslast über dieGoogle Cloud Console, die gcloud CLI oder die Dataproc API senden. Wenn diese Funktion für eine wiederkehrende Batcharbeitslast aktiviert ist, speichert Dataproc eine Kopie der Arbeitslastprotokolle für 30 Tage und verwendet die gespeicherten Protokolldaten, um eine Gemini-basierte Fehlerbehebung für die Arbeitslast bereitzustellen. Informationen zum Inhalt von Spark-Arbeitslastlogs finden Sie unter Dataproc Serverless-Logs.

Console

Führen Sie die folgenden Schritte aus, um die Gemini-basierte 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 auf Erstellen, um einen Batch-Arbeitslast zu erstellen.

  3. Geben Sie im Abschnitt Container den Namen der Kohorte ein, mit dem der Batch als eine von mehreren wiederkehrenden Arbeitslasten identifiziert wird. Die Gemini-basierte Analyse wird auf die zweite und die nachfolgenden Arbeitslasten angewendet, die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweise TPCH-Query1 als Kohortennamen für eine geplante Arbeitslast an, die täglich eine TPC-H-Abfrage ausführt.

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

gcloud

Führen Sie den folgenden gcloud CLI-Befehl gcloud dataproc batches submit lokal in einem Terminalfenster oder in Cloud Shell aus, um die Gemini-basierte 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, in der Ihre Arbeitslast ausgeführt wird.
  • COHORT: Der Kohortennamen, der den Batch als einen von mehreren wiederkehrenden Arbeitslasten identifiziert. Die Gemini-basierte Analyse wird auf die zweite und die nachfolgenden Arbeitslasten angewendet, die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweise TPCH Query 1 als Kohortennamen für eine geplante Arbeitslast an, die täglich eine TPC-H-Abfrage ausführt.

API

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

Beispiel:

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

Gemini-Unterstützung bei der Fehlerbehebung für Serverless for Apache Spark

Die folgenden Vorschaufunktionen für die Gemini-basierte Fehlerbehebung sind in der Google Cloud Console auf den Listenseiten Batchdetails und Batches verfügbar.

  • Tab Untersuchen: Der Tab „Untersuchen“ auf der Seite Batchdetails enthält den Abschnitt „Statusübersicht (Vorschau)“ mit den folgenden Gemini-basierten Fehlerbehebungsbereichen:

    • Was passiert jetzt? und Was kann ich tun? Klicken Sie auf Gemini fragen, um Empfehlungen zur Behebung fehlgeschlagener Arbeitslasten oder zur Verbesserung erfolgreicher, aber langsamer Arbeitslasten anzufordern.

    Schaltfläche „Gemini fragen“

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

    Von Gemini generierte Insights für Google Cloud.

  • Spalten für die Fehlerbehebung mit Gemini:Im Rahmen der Vorabversion enthält die Dataproc-Listenseite Batches in derGoogle Cloud -Konsole die Spalten What is happening now? und What can I do about it?.

    In Batches werden Gemini-Spalten aufgeführt.

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

Highlights von Batchmesswerten

Im Rahmen der Vorabversion enthält die Seite Batchdetails in der Google Cloud -Konsole Diagramme mit wichtigen Messwerten für Batcharbeitslasten. Die Messwertdiagramme werden erst 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 angezeigt werden. Außerdem wird beschrieben, wie Messwertwerte Aufschluss über den Arbeitslaststatus und die Leistung geben können.

Messwert Was wird angezeigt?
Messwerte auf Executor-Ebene
Verhältnis von JVM-GC-Zeit zur Laufzeit Dieser Messwert gibt das Verhältnis der JVM-GC-Zeit (Garbage Collection) zur Laufzeit pro Executor an. Hohe Raten können auf Speicherlecks bei Aufgaben hinweisen, die auf bestimmten Executors ausgeführt werden, oder auf ineffiziente Datenstrukturen, die zu einem hohen Objekt-Churn führen können.
An Laufwerk übergebene Byte Dieser Messwert gibt die Gesamtzahl der auf die Festplatte ausgelagerten Bytes für verschiedene Executors an. Wenn für einen Executor eine hohe Anzahl von auf die Festplatte ausgelagerten Byte angezeigt wird, kann dies auf eine Datenabweichung hindeuten. Wenn der Messwert im Laufe der Zeit steigt, kann dies auf Phasen mit Arbeitsspeicherdruck oder Arbeitsspeicherlecks hindeuten.
Gelesene und geschriebene Byte Dieser Messwert zeigt die geschriebenen und gelesenen Bytes pro Executor. Große Abweichungen bei den gelesenen oder geschriebenen Byte können darauf hindeuten, dass replizierte Joins zu einer Datenverstärkung auf bestimmten Executors führen.
Gelesene und geschriebene Datensätze Dieser Messwert gibt die Anzahl der gelesenen und geschriebenen Datensätze pro Executor an. Eine große Anzahl gelesener Datensätze bei einer geringen Anzahl geschriebener Datensätze kann auf einen Engpass in der Verarbeitungslogik auf bestimmten Executors hinweisen, der dazu führt, dass Datensätze während des Wartens gelesen werden. Wenn Executors bei Lese- und Schreibvorgängen immer wieder hinterherhinken, kann das auf Ressourcenkonflikte auf diesen Knoten oder auf Executorspezifische Code-Ineffizienzen hinweisen.
Verhältnis von Shuffle-Schreibzeit zu Laufzeit Der Messwert gibt an, wie viel Zeit der Executor im Vergleich zur Gesamtlaufzeit in der Shuffle-Laufzeit verbracht hat. Wenn dieser Wert für einige Executors hoch ist, kann das auf eine Datenabweichung oder eine ineffiziente Datenserialisierung hinweisen. In der Spark-Benutzeroberfläche können Sie Phasen mit langen Shuffle-Schreibzeiten identifizieren. Suchen Sie in diesen Phasen nach Ausreißeraufgaben, deren Ausführung länger als die durchschnittliche Zeit dauert. Prüfen Sie, ob bei den Executors mit hohen Shuffle-Schreibzeiten auch eine hohe Laufwerks-E/A-Aktivität zu beobachten ist. Eine effizientere Serialisierung und zusätzliche Partitionierungsschritte können helfen. Sehr große Schreibvorgänge im Vergleich zu Lesevorgängen können auf eine unbeabsichtigte Datenduplizierung aufgrund ineffizienter Joins oder falscher Transformationen hinweisen.
Messwerte auf Anwendungsebene
Phasenfortschritt Dieser Messwert gibt die Anzahl der Phasen in fehlgeschlagenen, wartenden und laufenden Phasen an. Eine große Anzahl fehlgeschlagener oder ausstehender Phasen kann auf eine Datenabweichung hinweisen. Prüfen Sie, ob Datenpartitionen vorhanden sind, und beheben Sie den Grund für den Fehler der Phase mithilfe des Tabs Stages in der Spark-UI.
Batch-Spark-Executors Dieser Messwert gibt die Anzahl der Executors an, die möglicherweise erforderlich sind, im Vergleich zur Anzahl der ausgeführten Executors. Ein großer Unterschied zwischen erforderlichen und aktiven Executors kann auf Probleme mit der automatischen Skalierung hinweisen.
Messwerte auf VM-Ebene
Verwendeter Arbeitsspeicher Dieser Messwert gibt den Prozentsatz des verwendeten VM-Arbeitsspeichers an. Wenn der Master-Prozentsatz hoch ist, kann dies darauf hindeuten, dass der Treiber unter Arbeitsspeicherdruck steht. Bei anderen VM-Knoten kann ein hoher Prozentsatz darauf hindeuten, dass die Executors nicht mehr genügend Arbeitsspeicher haben. Dies kann zu einem hohen Disk-Spillage und einer langsameren Ausführung der Arbeitslast führen. Verwenden Sie die Spark-UI, um Executors zu analysieren und nach hoher GC-Zeit und vielen fehlgeschlagenen Tasks zu suchen. Außerdem können Sie Spark-Code für das Caching großer Datasets und das unnötige Broadcasten von Variablen debuggen.

Jobprotokolle

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

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

Batch-Log-Explorer