Serverlose Dataproc-Batch-Arbeitslasten überwachen und Fehler beheben

In diesem Dokument wird beschrieben, wie Sie Dataproc Serverless für Spark-Batcharbeitslasten mithilfe der Spark-Benutzeroberfläche überwachen und Fehler beheben.

Spark-UI

Die Spark-UI erfasst Apache Spark-Ausführungsdetails aus Dataproc Serverless für Spark-Batcharbeitslasten. Die Spark-UI ist kostenlos und standardmäßig aktiviert.

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

Erforderliche Identity and Access Management-Berechtigungen und -Rollen

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

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

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

Spark-UI öffnen

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

  1. Rufen Sie die Seite Interaktive Dataproc Serverless-Sitzungen auf.

    Zu Dataproc-Batches

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

  3. Klicken Sie im Menü oben auf Spark-Benutzeroberfläche anzeigen.

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

Beschränkungen

Die Spark-UI unterstützt die folgenden serverlosen Dataproc-Arbeitslasten nicht:

Persistent History Server

Dataproc Serverless for Spark erstellt die Rechenressourcen, die zum Ausführen einer Arbeitslast erforderlich sind, führt die Arbeitslast auf diesen Ressourcen aus und löscht die Ressourcen dann, wenn die Arbeitslast abgeschlossen ist. Arbeitslastmesswerte und -ereignisse bleiben nach Abschluss einer Arbeitslast nicht erhalten. Sie können jedoch einen Persistent History Server (PHS) verwenden, um den Anwendungsverlauf der Arbeitslast (Ereignisprotokolle) in Cloud Storage zu speichern.

So verwenden Sie einen PHS mit einer Batch-Arbeitslast:

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

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

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

Dataproc Serverless für Spark-Protokolle

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

Dataproc Serverless für Spark-Logs abfragen

Der Log-Explorer in der Google Cloud Console bietet einen Abfragebereich, mit dem Sie eine Abfrage zum Prüfen von Batch-Arbeitslast-Logs erstellen können. So erstellen Sie eine Abfrage, um Protokolle für Batcharbeitslasten zu untersuchen:

  1. Zum Log-Explorer

  2. Ihr aktuelles Projekt ist ausgewählt. Sie können auf Projektumfang verfeinern klicken, um ein anderes Projekt auszuwählen.
  3. Definieren Sie eine Abfrage für Batchprotokolle.

    • 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 die LOKATION und dann die BATCH-ID des Buckets aus. Diese Batchparameter sind auf der Seite Batches in der Google Cloud Console aufgeführt.

        2. Klicken Sie auf Anwenden.

        3. Geben Sie unter Lognamen auswählen dataproc.googleapis.com in das Feld Lognamen suchen ein, um die Abfrage auf bestimmte Logtypen zu beschränken. Wählen Sie mindestens einen der aufgeführten Protokolldateinamen aus.

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

      1. Geben Sie den Ressourcentyp und den Namen der VM-Ressource an, wie im folgenden Beispiel gezeigt:

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

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

        In den Batchprotokollen wird außerdem die UUID des Batches im Namen der VM-Ressource aufgeführt. Hier ein Beispiel aus einem Batch-driver.log:

  4. Klicken Sie auf Abfrage ausführen.

Protokolltypen und Beispielabfragen für Dataproc Serverless für Spark

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

  1. dataproc.googleapis.com/output: Diese Protokolldatei enthält die Ausgabe der Batch-Arbeitslast. Dataproc Serverless for Spark streamt die Batchausgabe in den Namespace output und legt den Dateinamen auf JOB_ID.driver.log fest.

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

    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-Protokolle für Daemons und Executors zusammengefasst, die auf den Master- und Worker-VMs des Dataproc-Clusters ausgeführt werden. Jeder Logeintrag enthält ein master-, worker- oder executor-Komponentenlabel, um die Logquelle zu identifizieren:

    • executor: Protokolle von Ausführern von Nutzercode In der Regel sind dies verteilte Protokolle.
    • master: Logs vom Spark-Standalone-Ressourcenmanager-Master, die den YARN-ResourceManager-Logs von Dataproc in der Compute Engine ähneln.
    • worker: Logs vom Spark-Standalone-Ressourcenmanager-Worker, die den Dataproc on Compute Engine YARN-NodeManager-Logs ähneln.

    Beispiel für eine Log-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 Logs der eigenständigen Spark-Komponenten 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 Startprotokolle für Batch-Jobs (Cluster). Alle Logs für Initialisierungsscripts sind enthalten. Komponenten werden anhand eines Labels identifiziert, z. B.:

    startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
    
    Beispiel für eine Log-Explorer-Abfrage für Startprotokolle 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 Namespace agent werden Dataproc-Agent-Logs zusammengefasst. Jeder Logeintrag enthält ein Dateinamenslabel, das die Protokollquelle identifiziert.

    Beispiel für eine Log-Explorer-Abfrage für Agentenprotokolle, 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 Logs des Dataproc Serverless für Spark-Autoscalers zusammengefasst.

    Beispiel für eine Log-Explorer-Abfrage für Agentenprotokolle, 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-Protokolle.

Dataproc Serverless-Audit-Logs

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

Arbeitslastmesswerte

In Dataproc Serverless für Spark ist standardmäßig die Erfassung der verfügbaren Spark-Messwerte aktiviert, es sei denn, Sie verwenden Spark-Properties für die Erfassung von Messwerten, 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 Console aufrufen.

Batchmesswerte

Die Dataproc-batch-Ressourcenmesswerte liefern Informationen zu Batchressourcen wie der Anzahl der Batch-Executors. Batchmesswerte haben das Präfix dataproc.googleapis.com/batch.

Beispiel für einen Batch-Messwert im Metrics Explorer

Spark-Messwerte

Zu den verfügbaren Spark-Messwerten gehören 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

Messwertbenachrichtigungen einrichten

Sie können Dataproc-Messwertbenachrichtigungen erstellen, um über Arbeitslastprobleme 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

Beim Monitoring werden Arbeitslastmetadaten und -messwerte verwendet, um Informationen zur Integrität und Leistung von Dataproc Serverless für Spark-Arbeitslasten zu erhalten. Zu den Arbeitslastmesswerten gehören Spark-, Batch- und Vorgangsmesswerte.

Mit Cloud Monitoring in der Google Cloud Console können Sie Messwerte untersuchen, Diagramme hinzufügen, Dashboards erstellen und Benachrichtigungen 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.

Erweiterte Fehlerbehebung (Vorabversion)

In diesem Abschnitt werden die erweiterten Funktionen zur Fehlerbehebung (Vorabversion) beschrieben, die in der Google Cloud Console verfügbar sind. Dazu gehört die Gemini-gestützte Fehlerbehebung für Dataproc Serverless, die Teil des Angebots Gemini in BigQuery ist.

Zugriff auf Vorschaufunktionen

Wenn Sie sich für die Vorabversion der erweiterten Funktionen zur Fehlerbehebung registrieren möchten, füllen Sie das Gemini in BigQuery Pre-GA-Anmeldeformular aus und senden Sie es. Sobald das Formular genehmigt wurde, haben die im Formular aufgeführten Projekte Zugriff auf die Vorabversion der Funktionen.

Preise in der Vorschau ansehen

Die Teilnahme an der Vorabversion ist kostenlos. Für die folgenden Vorschaufunktionen fallen Gebühren an, sobald sie allgemein verfügbar sind:

Vorabinformationen zu GA-Abbuchungen werden an die E-Mail-Adresse gesendet, die Sie im Registrierungsformular für die Vorabversion angegeben haben.

Funktionsanforderungen

  • 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 Dataproc Serverless aktivieren:Sie aktivieren die Gemini-gestützte Fehlerbehebung für Dataproc Serverless, wenn Sie jede wiederkehrende Spark-Batcharbeitslast über die Google Cloud Console, die gcloud CLI oder die Dataproc API einreichen. Sobald 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 mit Gemini Fehler bei der Arbeitslast zu beheben. Informationen zum Inhalt von Spark-Arbeitslast-Logs finden Sie unter Dataproc Serverless für Spark-Logs.

Console

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

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

  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 Batcharbeitslast 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-gestützte Fehlerbehebung für jede wiederkehrende Spark-Batch-Arbeitslast 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 Name der Kohorte, der den Batch als eine von mehreren wiederkehrenden Arbeitslasten identifiziert. Die Gemini-gestützte Analyse wird auf die zweite und nachfolgenden Arbeitslasten angewendet, die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweise TPCH Query 1 als Kohortennamen für eine geplante Arbeitslast an, bei der täglich eine TPC-H-Abfrage ausgeführt wird.

API

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

Beispiel:

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

Gemini-gestützte Fehlerbehebung für Dataproc Serverless

Die folgenden Funktionen zur Fehlerbehebung mit Gemini sind in der Google Cloud Console auf den Seiten Batch-Details und Batches verfügbar.

  • Tab Untersuchen: Der Tab „Untersuchen“ auf der Seite Batchdetails enthält den Abschnitt „Zustand – Übersicht“ (Vorabversion) mit den folgenden Gemini-gestützten Steuerfeldern zur Fehlerbehebung:

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

    Bereich „Autotuning-Prüfung“

    • Was passiert jetzt? und Was kann ich dagegen 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 for 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, mit denen Sie eine fehlgeschlagene Arbeitslast korrigieren oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast verbessern können.

    Von Gemini for Google Cloud generierte Statistiken.

  • Spalten für die Gemini-gestützte Fehlerbehebung:Im Rahmen der Vorabversion enthält die 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 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 for 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, mit denen Sie eine fehlgeschlagene Arbeitslast korrigieren oder die Leistung einer erfolgreichen, aber langsamen Arbeitslast verbessern können.

Top-Messwerte für Batches

Im Rahmen der Vorabversion enthält die Seite Batchdetails in der Google Cloud Console Diagramme mit wichtigen Messwerten für die Batcharbeitslast. Die Messwertdiagramme werden nach Abschluss des Batch-Verfahrens mit Werten ausgefüllt.

Dashboard mit Messwerten für Batch-Prozesse

Tabelle mit Messwerten

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 Messwertwerte Aufschluss über den Arbeitslaststatus und die Leistung geben können.

Messwert Was wird angezeigt?
Messwerte auf Executor-Ebene
Verhältnis der JVM-GC-Zeit zur Laufzeit Dieser Messwert gibt das Verhältnis der JVM-GC-Zeit (Garbage Collection) zur Laufzeit pro Executor an. Hohe Verhältnisse können auf Speicherlecks in Aufgaben hinweisen, die auf bestimmten Executors ausgeführt werden, oder auf ineffiziente Datenstrukturen, was zu einer hohen Objektauslastung führen kann.
An das Laufwerk übergebene Byte Dieser Messwert gibt die Gesamtzahl der auf verschiedene Executors verteilten Festplatten-Bytes an. Wenn ein Executor eine hohe Anzahl von auf die Festplatte ausgelagerten Bytes anzeigt, kann dies auf eine Datenverzerrung hinweisen. Wenn der Messwert im Laufe der Zeit ansteigt, kann dies auf Phasen mit Arbeitsspeicherdruck oder Arbeitsspeicherlecks hinweisen.
Gelesene und geschriebene Byte Dieser Messwert gibt die Anzahl der geschriebenen und gelesenen Bytes pro Executor an. Große Abweichungen bei gelesenen oder geschriebenen Bytes können auf Szenarien hinweisen, in denen replizierte Joins zu einer Datenamplifikation bei bestimmten Executors führen.
Gelesene und geschriebene Einträge Dieser Messwert gibt die Anzahl der gelesenen und geschriebenen Einträge pro Executor an. Wenn viele Datensätze gelesen, aber nur wenige geschrieben werden, kann das auf ein Engpass bei der Verarbeitungslogik bei bestimmten Executoren hinweisen. Dies führt dazu, dass Datensätze während der Wartezeit gelesen werden. Wenn bei Ausführenden bei Lese- und Schreibvorgängen regelmäßig Verzögerungen auftreten, kann das auf Ressourcenkonflikte auf diesen Knoten oder ausführendenspezifischen Codeineffizienzen hinweisen.
Verhältnis der Schreibzeit für Zufallsmix zur Laufzeit Der Messwert gibt an, wie viel Zeit der Executor im Vergleich zur Gesamtlaufzeit für die Zufallsmix-Laufzeit aufgewendet hat. Wenn dieser Wert für einige Executors hoch ist, kann das auf Datenasymmetrien oder eine ineffiziente Datenserialisierung hinweisen. In der Spark-Benutzeroberfläche können Sie Phasen mit langen Zufallsmix-Schreibzeiten identifizieren. Suchen Sie in diesen Phasen nach Aufgaben, die länger als der Durchschnitt dauern. Prüfen Sie, ob die Executors mit langen Zufallsmix-Schreibzeiten auch eine hohe Laufwerks-E/A-Aktivität aufweisen. Eine effizientere Serialization und zusätzliche Partitionierungsschritte können helfen. Sehr viele Datensatzeinträge im Vergleich zu Datensatzlesungen können auf unbeabsichtigte Datenduplikate aufgrund ineffizienter Joins oder falscher Transformationen hinweisen.
Messwerte auf Anwendungsebene
Phasen Dieser Messwert gibt die Anzahl der Phasen in fehlgeschlagenen, wartenden und laufenden Phasen an. Eine große Anzahl fehlgeschlagener oder ausstehender Phasen kann auf einen Datenskew hinweisen. Prüfen Sie auf Datenpartitionen und beheben Sie den Grund für den Fehler der Phase auf dem Tab Phasen in der Spark-Benutzeroberfläche.
Batch Spark Executors Dieser Messwert gibt die Anzahl der möglicherweise erforderlichen Executors im Vergleich zur Anzahl der laufenden Executors an. Ein großer Unterschied zwischen erforderlichen und laufenden Executors kann auf Probleme mit der automatischen Skalierung hinweisen.
Messwerte auf VM-Ebene
Verwendeter Arbeitsspeicher Dieser Messwert gibt den Prozentsatz des verwendeten VM-Speichers an. Ein hoher Master-Prozentsatz kann darauf hinweisen, dass der Treiber unter Arbeitsspeicherdruck steht. Bei anderen VM-Knoten kann ein hoher Prozentsatz darauf hinweisen, dass der Arbeitsspeicher der Ausführenden knapp wird. Dies kann zu einer hohen Auslastung des Laufwerks und einer längeren Laufzeit der Arbeitslast führen. Verwenden Sie die Spark-Benutzeroberfläche, um Executors auf lange GC-Zeiten und viele Aufgabenfehler zu prüfen. Außerdem können Sie Spark-Code für das Caching großer Datensätze und die unnötige Übertragung von Variablen debuggen.

Jobprotokolle

Im Rahmen der Vorabversion werden auf der Seite Batch-Details in der Google Cloud Console Job-Logs (Batch-Arbeitslast) aufgeführt. Die Logs enthalten Warnungen und Fehler, die aus der Arbeitslastausgabe und den Spark-Logs gefiltert wurden. Sie können den Schweregrad der 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 in der Auswahl für die Schwere Errors ausgewählt haben.

Explorer für Batch-Logs