Wenn Sie einen Dataproc-Job senden, erfasst Dataproc automatisch die Jobausgabe und stellt sie Ihnen zur Verfügung. Sie können die Jobausgabe also schnell überprüfen, ohne eine Verbindung zum Cluster beibehalten zu müssen, wenn Jobs ausgeführt oder komplizierte Log-Dateien analysiert werden.
Spark-Logs
Es gibt zwei Arten von Spark-Logs: Spark-Treiberlogs und Spark-Executor-Logs.
Spark-Treiberlogs enthalten die Jobausgabe. Spark-Executor-Logs enthalten die ausführbare Datei oder die Launcher-Ausgabe des Jobs, z. B. die Meldung spark-submit
„Submitted application xxx“ (Anwendung xxx wurde gesendet). Sie können hilfreich sein, um Jobfehler zu beheben.
Der Dataproc-Jobtreiber, der sich vom Spark-Treiber unterscheidet, ist ein Launcher für viele Jobtypen. Beim Starten von Spark-Jobs wird es als Wrapper für die zugrunde liegende ausführbare Datei spark-submit
ausgeführt, die den Spark-Treiber startet. Der Spark-Treiber führt den Job im Dataproc-Cluster im Spark-Modus client
oder cluster
aus:
client
-Modus: Der Spark-Treiber führt den Job imspark-submit
-Prozess aus und Spark-Logs werden an den Dataproc-Jobtreiber gesendet.cluster
-Modus: Der Spark-Treiber führt den Job in einem YARN-Container aus. Spark-Treiberlogs sind für den Dataproc-Job-Treiber nicht verfügbar.
Übersicht über Dataproc- und Spark-Jobattribute
Attribut | Wert | Default | Beschreibung |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
"true" oder "false" | falsch | Muss beim Erstellen des Clusters festgelegt werden. Wenn true , befindet sich die Job-Treiberausgabe in Logging, verknüpft mit der Jobressource. Wenn false , befindet sich die Job-Treiberausgabe nicht in Logging.Hinweis: Die folgenden Clusterattribut-Einstellungen sind ebenfalls erforderlich, um Jobtreiberlogs in Logging zu aktivieren. Sie werden beim Erstellen eines Clusters standardmäßig festgelegt: 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" | falsch | Muss beim Erstellen des Clusters festgelegt werden.
Bei true werden Job-YARN-Containerlogs der Jobressource zugeordnet. Bei false werden Job-YARN-Containerlogs der Clusterressource zugeordnet. |
spark:spark.submit.deployMode |
Client oder Cluster | Client | Steuert den Spark-Modus client oder cluster . |
Spark-Jobs, die mit der Dataproc jobs
API gesendet wurden
In den Tabellen in diesem Abschnitt wird die Auswirkung verschiedener Attributseinstellungen auf das Ziel der Dataproc-Jobtreiberausgabe aufgeführt, wenn Jobs über die Dataproc jobs
API gesendet werden. Dazu gehört auch das Senden von Jobs über dieGoogle Cloud Console, die gcloud CLI und die Cloud-Clientbibliotheken.
Die aufgeführten Dataproc- und Spark-Attribute können beim Erstellen eines Clusters mit dem Flag --properties
festgelegt werden und gelten für alle Spark-Jobs, die im Cluster ausgeführt werden. Spark-Attribute können auch mit dem Flag --properties
(ohne das Präfix „spark:“) festgelegt werden, wenn ein Job an die Dataproc-API jobs
gesendet wird. Sie gelten dann nur für den Job.
Dataproc-Job-Treiberausgabe
In den folgenden Tabellen wird die Auswirkung verschiedener Eigenschaftseinstellungen auf das Ziel der Dataproc-Jobtreiberausgabe aufgeführt.
dataproc: |
Ausgabe |
---|---|
false (Standardeinstellung) |
|
wahr |
|
Spark-Treiberlogs
In den folgenden Tabellen wird die Auswirkung verschiedener Attributseinstellungen auf das Ziel von Spark-Treiberlogs aufgeführt.
spark: |
dataproc: |
dataproc: |
Treiberausgabe |
---|---|---|---|
Client | false (Standardeinstellung) | "true" oder "false" |
|
Client | wahr | "true" oder "false" |
|
Cluster | false (Standardeinstellung) | falsch |
|
Cluster | wahr | wahr |
|
Spark-Ausführer-Logs
In den folgenden Tabellen wird die Auswirkung verschiedener Eigenschaftseinstellungen auf das Ziel von Spark-Executor-Logs aufgeführt.
dataproc: |
Executor-Log |
---|---|
false (Standardeinstellung) | In Logging: yarn-userlogs unter der Clusterressource |
wahr | In Logging dataproc.job.yarn.container unter der Jobressource |
Spark-Jobs, die ohne Verwendung der Dataproc jobs
API gesendet wurden
In diesem Abschnitt wird die Auswirkung verschiedener Attributseinstellungen auf das Ziel von Spark-Joblogs aufgeführt, wenn Jobs ohne Verwendung der Dataproc jobs
API gesendet werden, z. B. wenn ein Job direkt auf einem Clusterknoten mit spark-submit
oder mit einem Jupyter- oder Zeppelin-Notebook gesendet wird. Diese Jobs haben keine Dataproc-Job-IDs oder -Treiber.
Spark-Treiberlogs
In den folgenden Tabellen wird die Auswirkung verschiedener Attributseinstellungen auf das Ziel von Spark-Treiberlogs für Jobs aufgeführt, die nicht über die Dataproc jobs
API gesendet wurden.
spark: |
Treiberausgabe |
---|---|
Client |
|
Cluster |
|
Spark-Ausführer-Logs
Wenn Spark-Jobs nicht über die Dataproc jobs
API gesendet werden, befinden sich die Executor-Logs in Logging yarn-userlogs
unter der Clusterressource.
Jobausgabe ansehen
Sie können auf die Dataproc-Jobausgabe in der Google Cloud Console, der gcloud CLI, Cloud Storage oder Logging zugreifen.
Console
Zum Aufrufen der Jobausgabe rufen Sie den Dataproc-Abschnitt Jobs für Ihr Projekt auf und klicken auf die Job-ID.

Während der Ausführung des Jobs wird die Jobausgabe regelmäßig mit neuen Inhalten aktualisiert.
gcloud-Befehl
Wenn Sie einen Job mit dem Befehl gcloud dataproc jobs submit 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 entweder im Staging-Bucket oder in dem Bucket gespeichert, 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 ...