Wenn Sie einen Dataproc-Job senden, geschieht Folgendes: Dataproc erfasst automatisch die und stellt sie Ihnen zur Verfügung. Das bedeutet, dass Sie die Jobausgabe schnell überprüfen, ohne Verbindung zum Cluster während der Jobausführung oder kompliziertes Log prüfen -Dateien.
Spark-Protokolle
Es gibt zwei Arten von Spark-Logs: Spark-Treiberlogs und Spark-Executor-Logs.
Spark-Treiber-Logs enthalten Jobausgaben. Spark-Executor-Logs enthalten die ausführbare Datei oder Launcher-Ausgabe des Jobs, z. B. die Meldung spark-submit
„Anwendung xxx gesendet“. Sie können beim Beheben von Jobfehlern hilfreich sein.
Der Dataproc-Jobtreiber, der sich vom Spark-Treiber unterscheidet,
ist ein Launcher für viele Arten von Dienstleistungen. Beim Starten von Spark-Jobs wird er als
Wrapper für die zugrunde liegende ausführbare Datei spark-submit
, die das Spark startet
. Der Spark-Treiber führt den Job im Dataproc-Cluster im Spark-client
- oder cluster
-Modus aus:
Modus
client
: Der Spark-Treiber führt den Job im Prozessspark-submit
aus. und Spark-Logs an den Dataproc-Jobtreiber gesendet.cluster
-Modus: Der Spark-Treiber führt den Job in einem YARN-Container aus. Spark-Treiber Für den Dataproc-Jobtreiber sind keine Logs verfügbar.
Dataproc- und Spark-Jobattribute – Übersicht
Attribut | Wert | Default | Beschreibung |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
"true" oder "false" | false | Muss beim Erstellen des Clusters festgelegt werden. Wenn true ,
die Job-Treiberausgabe in Logging ist,
die mit der Jobressource verknüpft sind. wann false , Fahrer
Die Ausgabe befindet sich nicht in Logging.Hinweis: Die folgenden Einstellungen für Clusterattribute sind ebenfalls erforderlich, um und werden standardmäßig festgelegt, wenn ein Cluster wird erstellt: dataproc:dataproc.logging.stackdriver.enable=true
und dataproc:jobs.file-backed-output.enable=true
|
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable |
"true" oder "false" | false | Muss beim Erstellen des Clusters festgelegt werden.
Wenn true , werden YARN-Containerlogs des Jobs zugeordnet
mit der Jobressource beginnen. wenn false , Job-YARN-Containerlogs
mit der Clusterressource verknüpft sind. |
spark:spark.submit.deployMode |
Client oder Cluster | Client | Steuert den Spark-Modus client oder cluster . |
Mit der Dataproc jobs
API gesendete Spark-Jobs
In den Tabellen in diesem Abschnitt werden die Auswirkungen verschiedener Property-Einstellungen auf die Property
Ziel der Dataproc-Job-Treiberausgabe beim Senden von Jobs
über die Dataproc jobs
API, einschließlich der Jobübermittlung über den
Google Cloud Console, gcloud CLI und Cloud-Clientbibliotheken
Die aufgelisteten Dataproc- und Spark-Attribute
kann beim Erstellen eines Clusters mit dem Flag --properties
festgelegt werden und gilt
auf alle im Cluster ausgeführten Spark-Jobs; Spark-Attribute können auch mit der
--properties
(ohne das Präfix „spark:“), wenn ein Job
an die Dataproc jobs
API gesendet und nur auf den Job angewendet.
Dataproc-Job-Treiberausgabe
In den folgenden Tabellen sehen Sie, wie sich verschiedene Property-Einstellungen auf die Property Ziel der Treiberausgabe des Dataproc-Jobs.
dataproc: |
Ausgabe |
---|---|
false (Standardeinstellung) |
|
wahr |
|
Spark-Treiberprotokolle
In den folgenden Tabellen wird die Auswirkung verschiedener Property-Einstellungen auf das Ziel von Spark-Treiberprotokollen aufgeführt.
spark: |
dataproc: |
dataproc: |
Treiberausgabe |
---|---|---|---|
Client | false (Standardeinstellung) | "true" oder "false" |
|
Client | wahr | "true" oder "false" |
|
Cluster | false (Standardeinstellung) | false |
|
Cluster | wahr | wahr |
|
Spark-Ausführer-Logs
In den folgenden Tabellen sehen Sie, wie sich verschiedene Property-Einstellungen auf die Property Ziel von Spark-Executor-Logs.
dataproc: |
Executor-Protokoll |
---|---|
false (Standardeinstellung) | In Logging: yarn-userlogs unter der Clusterressource |
wahr | In Logging dataproc.job.yarn.container unter der Jobressource |
Spark-Jobs, die ohne die Dataproc jobs
API gesendet wurden
In diesem Abschnitt werden die Auswirkungen verschiedener Property-Einstellungen auf die
Ziel der Spark-Joblogs beim Senden von Jobs
ohne die Dataproc jobs
API zu verwenden, z. B. beim Senden
mithilfe von spark-submit
oder einem Jupyter-Objekt direkt auf einem Clusterknoten erstellen.
oder Zeppelin-Notebook. Diese Jobs haben keine Dataproc-Job-IDs oder ‑Treiber.
Spark-Treiberlogs
In den folgenden Tabellen sehen Sie, wie sich verschiedene Property-Einstellungen auf die Property
Ziel von Spark-Treiberlogs für Jobs, die nicht über die Dataproc jobs
API gesendet wurden.
spark: |
Treiberausgabe |
---|---|
Client |
|
Cluster |
|
Spark-Executor-Logs
Wenn Spark-Jobs nicht über die Dataproc jobs
API gesendet werden, finden Sie die Executor-Logs unter „Logging“ yarn-userlogs
unter der Clusterressource.
Jobausgabe ansehen
Sie können in der Google Cloud Console auf die Dataproc-Jobausgabe zugreifen. über die gcloud CLI, Cloud Storage oder Logging.
Console
Rufen Sie die Dataproc-Anwendung Ihres Projekts auf, um die Jobausgabe anzusehen Karriere und Beruf und dann auf die Job-ID, um die Jobausgabe aufzurufen.
Wenn der Job ausgeführt wird, wird die Jobausgabe regelmäßig mit neuen Inhalten.
gcloud-Befehl
Wenn Sie einen Job mit der
gcloud Dataproc-Jobs senden
wird die Jobausgabe in der Konsole angezeigt. Sie können die Ausgabe zu einem späteren Zeitpunkt auf einem anderen Computer oder in einem neuen Fenster wieder aufrufen, indem Sie die ID des Jobs an den Befehl gcloud dataproc jobs wait übergeben. Die Job-ID ist eine GUID wie z. B. 5c1754a5-34f7-4553-b667-8a1199cb9cab
. Hier ein Beispiel:
gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \ --project my-project-id --region my-cluster-region
Waiting for job output... ... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2 ... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/ ...
Cloud Storage
Die Jobausgabe wird in Cloud Storage gespeichert, entweder den Staging-Bucket oder den Bucket, den Sie beim Erstellen des Clusters angegeben haben. Ein Link zur Jobausgabe in Cloud Storage wird im Feld Job.driverOutputResourceUri bereitgestellt. Dieses erhalten Sie über:
- Eine API-Anfrage des Typs jobs.get
- den Befehl gcloud dataproc jobs describe job-id.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...