Dataproc-Job-Treiberausgabe

Wenn Sie einen Dataproc-Job senden, erfasst Dataproc automatisch die Jobausgabe und stellt sie Ihnen zur Verfügung. Sie können also schnell eine Jobausgabe prüfen, ohne eine Verbindung zum Cluster herstellen zu müssen, während Jobs ausgeführt oder komplizierte Protokolldateien durchsucht werden.

Ausgabeoptionen des Spark-Jobs

Der Dataproc-Jobtreiber ist ein Launcher für viele Jobtypen. Beim Starten von Spark-Jobs wird es als Wrapper für die zugrunde liegende spark-submit-Datei ausgeführt, mit der der Spark-Treiber gestartet wird. Der Spark-Treiber führt den Job im Dataproc-Cluster im Spark-client- oder cluster-Modus aus:

  • client-Modus: Der Spark-Treiber führt den Job im spark-submit-Prozess aus und Spark-Logs werden an den Dataproc-Jobtreiber gesendet.

  • Modus „cluster“: Der Spark-Treiber führt den Job in einem YARN-Container aus. Spark-Treiberlogs sind für den Dataproc-Jobtreiber nicht verfügbar und enthalten nur spark-submit-Logs, z. B. „"application xxx"“. Spark-Treiberausgabe und Executor-Logs sind in YARN-Containerlogs enthalten.

In den folgenden Tabellen sind Dataproc- und Spark-Attribute aufgeführt, die das Ziel des Dataproc-Jobtreibers und der Spark-Jobausgabe beeinflussen. Die aufgeführten Dataproc- und Spark-Attribute können mit dem Flag --properties festgelegt werden, wenn ein Cluster erstellt wird, und gelten auf 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 gesendet wird.

Attribut Wert Standard Beschreibung
dataproc:dataproc.logging.stackdriver.job.driver.enable Richtig oder falsch? falsch Bei true befindet sich die Jobtreiberausgabe in Logging. Diese ist der Jobressource zugeordnet, bei false ist die Jobtreiberausgabe nicht in Logging vorhanden.
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable Richtig oder falsch? falsch Wenn true, sind Job YARN-Containerlogs mit der Jobressource verknüpft, während false, mit der Clusterressource.
spark:spark.submit.deployMode Client oder Cluster Client Steuert den Spark-Modus client oder cluster.

Dataproc-Job-Treiberausgabe

In den folgenden Tabellen sind die Auswirkungen verschiedener Property-Einstellungen auf das Ziel der Dataproc-Jobtreiberausgabe aufgeführt.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Ausgabe
false (Standardeinstellung)
  • Gestreamt an Client
  • In Cloud Storage beim von Dataproc generierten driverOutputResourceUri
  • Nicht in Logging
wahr
  • Gestreamt an Client
  • In Cloud Storage beim von Dataproc generierten driverOutputResourceUri
  • In Logging: dataproc.job.driver unter der Jobressource

Spark-Treiberausgabe

In den folgenden Tabellen sind die Auswirkungen verschiedener Property-Einstellungen auf das Ziel der Spark-Treiberausgabe aufgeführt.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
Treiberausgang
Client false (Standardeinstellung)
  • Gestreamt an Client
  • In Cloud Storage beim von Dataproc generierten driverOutputResourceUri
  • Nicht in Logging
Client wahr
  • Gestreamt an Client
  • In Cloud Storage beim von Dataproc generierten driverOutputResourceUri
  • In Logging: dataproc.job.driver unter der Jobressource
Cluster false (Standardeinstellung)
  • Nicht gestreamt
  • Nicht in Cloud Storage
  • Beim Logging von yarn-userlogs unter der Clusterressource
Cluster wahr
  • Nicht gestreamt
  • Nicht in Cloud Storage
  • In Logging: dataproc.job.yarn.container unter der Jobressource

Spark-Executor-Ausgabe

In den folgenden Tabellen sind die Auswirkungen verschiedener Property-Einstellungen auf das Ziel der Spark-Executor-Ausgabe aufgeführt.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Executor-Ausgang
false (Standardeinstellung) In Logging: yarn-userlogs unter der Clusterressource
wahr Logging in dataproc.job.yarn.container unter der Jobressource

Jobausgabe ansehen

Sie können auf die Dataproc-Jobtreiberausgabe über die Cloud Console, die gcloud-Befehlszeile oder Cloud Storage zugreifen.

Console

Wenn Sie sich die Jobausgabe ansehen möchten, rufen Sie den Abschnitt Jobs Ihres Projekts auf und klicken Sie auf Job-ID, um die Jobausgabe anzusehen.

Wenn der Job ausgeführt wird, wird die Jobausgabe regelmäßig mit neuen Inhalten aktualisiert.

gcloud-Befehl

Wenn Sie einen Job mit dem Befehl gcloud qwiklabsjobssubmit senden, wird die Jobausgabe in der Konsole angezeigt. Sie können die Ausgabe später auf einem anderen Computer oder in einem neuen Fenster wieder aufnehmen, indem Sie die Job-ID an den Befehl gcloud qwiklabsjobs 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, der von Folgendem zurückgegeben wird:

  • Eine API-Anfrage des Typs jobs.get
  • Der Befehl gcloud developersjobs job-id.
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...