In diesem Dokument wird beschrieben, wie Sie Dataproc Serverless für Spark-Batch-Arbeitslasten 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 RolleDataproc 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 Berechtigungdataproc.batches.sparkApplicationWrite
hinzufügen. Normalerweise geschieht dies, indem Sie dem Dienstkonto die RolleWorker
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 RollenDataproc Viewer
,Dataproc Editor
undDataproc 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.
Rufen Sie die Seite Interaktive Dataproc Serverless-Sitzungen auf.
Klicken Sie auf eine Batch-ID, um die Seite mit den Batch-Details zu öffnen.
Klicken Sie im Menü oben auf Spark-Benutzeroberfläche anzeigen.
Die Schaltfläche Spark-UI aufrufen ist in den folgenden Fällen deaktiviert:
- Wenn eine erforderliche Berechtigung nicht gewährt wurde
- Wenn Sie auf der Seite Batchdetails das Kästchen Spark-UI aktivieren deaktivieren
- Wenn Sie das Attribut
spark.dataproc.appContext.enabled
auffalse
festlegen, wenn Sie eine Batcharbeitslast einreichen
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:
Erstellen Sie einen Dataproc Persistent History Server (PHS).
Geben Sie Ihre PHS an, wenn Sie eine Arbeitslast einreichen.
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:
- Ihr aktuelles Projekt ist ausgewählt. Sie können auf Projektumfang verfeinern klicken, um ein anderes Projekt auszuwählen.
Definieren Sie eine Abfrage für Batchprotokolle.
Verwenden Sie die Filtermenüs, um nach einer Batch-Arbeitslast zu filtern.
Wählen Sie unter Alle Ressourcen die Ressource Cloud Dataproc-Batch aus.
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.
Klicken Sie auf Anwenden.
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.
Geben Sie den Ressourcentyp und den Namen der VM-Ressource an, wie im folgenden Beispiel gezeigt:
Hinweise:resource.type="cloud_dataproc_batch" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
- 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 Batch-UUID im Namen der VM-Ressource aufgeführt. Hier ein Beispiel aus einem Batch-driver.log:
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.
dataproc.googleapis.com/output
: Diese Protokolldatei enthält die Ausgabe der Batch-Arbeitslast. Dataproc Serverless for Spark streamt die Batchausgabe in den Namespaceoutput
und legt den Dateinamen aufJOB_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"
dataproc.googleapis.com/spark
: Im Namespacespark
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 einmaster
-,worker
- oderexecutor
-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-Logs in der Compute Engine-YARN-NodeManager
ä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"
dataproc.googleapis.com/startup
: Der Namespacestartup
enthält die Startprotokolle für Batch-Jobs (Cluster). Alle Logs für Initialisierungsscripts sind enthalten. Komponenten werden anhand eines Labels identifiziert, z. B.: Beispiel für eine Log-Explorer-Abfrage für Startprotokolle auf einer bestimmten VM:startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
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"
dataproc.googleapis.com/agent
: Im Namespaceagent
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#"
dataproc.googleapis.com/autoscaler
: Im Namespaceautoscaler
werden Logs des Dataproc Serverless für Spark-Autoscaling 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
.
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/
.
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 bereitzustellen. 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:
- Fehlerbehebung mit Gemini für Dataproc Serverless
- Wichtige Informationen zu Batchmesswerten
- Job Logs
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
.Wenn Sie die vordefinierte Rolle
roles/dataproc.admin
,roles/dataproc.editor
oderroles/dataproc.viewer
haben, haben Sie die erforderliche Berechtigung. Sie müssen nichts weiter unternehmen.Wenn Sie eine benutzerdefinierte Rolle für den Zugriff auf Dataproc-Dienste verwenden, muss die benutzerdefinierte Rolle die Berechtigung
dataproc.batches.analyze
haben. Sie können die Berechtigung mit der gcloud CLI hinzufügen, wie im folgenden Befehl gezeigt, der die Berechtigung auf Projektebene hinzufügt:
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:
Rufen Sie in der Google Cloud Console die Dataproc-Seite Batches auf.
Klicken Sie auf Erstellen, um eine Batch-Arbeitslast zu erstellen.
Geben Sie im Abschnitt 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.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
oderSpark-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 Listenseiten Batch-Details und Batches verfügbar.
Tab Untersuchen: Der Tab „Untersuchen“ auf der Seite Batchdetails enthält den Abschnitt „Statusübersicht (Vorabversion)“ mit den folgenden Gemini-unterstü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.
- 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.
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.
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?
undWhat can I do about it?
.Die Schaltfläche Gemini fragen wird nur angezeigt und aktiviert,wenn sich ein abgeschlossener Batch im Status
Failed
,Cancelled
oderSucceeded
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 Batches mit Werten ausgefüllt.
In der folgenden Tabelle sind die Spark-Arbeitslastmesswerte aufgeführt, die in der Google Cloud Console auf der Seite Batch-Details 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 Byte können auf Szenarien hinweisen, in denen replizierte Joins zu einer Datenamplifizierung 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 Executors 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 Shuffle-Schreibzeit 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.