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-Logs
Es gibt zwei Arten von Spark-Protokollen: Spark-Treiberprotokolle und Spark-Executor-Protokolle.
Spark-Treiberlogs enthalten Jobausgaben. Spark Executor-Logs enthalten einen ausführbaren Job
oder Launcher-Ausgabe, z. B. spark-submit
„Submitted application xxx“ (Eingereichte Bewerbung xxx) Nachricht und
kann bei der Fehlersuche
bei 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 in Spark aus.
client
- oder cluster
-Modus:
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-Treiberprotokolle sind für den Dataproc-Job-Treiber nicht 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 festgelegt ist, ist die Job-Treiberausgabe in „Logging“ und mit der Jobressource verknüpft. Bei false ist die Job-Treiberausgabe nicht in „Logging“ enthalten.Hinweis: Die folgenden Clustereigenschaften sind ebenfalls erforderlich, um Jobtreiber-Logs 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" | 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 . |
Spark-Jobs, die mit der Dataproc jobs
API gesendet wurden
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 aufgeführten Dataproc- und Spark-Attribute können beim Erstellen eines Clusters mit dem Flag --properties
festgelegt werden und gelten dann für alle Spark-Jobs, die auf dem 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 jobs
API gesendet wird. Sie gelten dann nur für den Job.
Treiberausgabe des Dataproc-Jobs
In den folgenden Tabellen sind die Auswirkungen unterschiedlicher Property-Einstellungen auf die Property Ziel der Treiberausgabe des Dataproc-Jobs.
dataproc: |
Ausgabe |
---|---|
false (Standardeinstellung) |
|
wahr |
|
Spark-Treiberprotokolle
In den folgenden Tabellen sind die Auswirkungen unterschiedlicher Property-Einstellungen auf die Property Ziel von Spark-Treiberlogs.
spark: |
dataproc: |
dataproc: |
Treiberausgabe |
---|---|---|---|
Client | false (Standardeinstellung) | "true" oder "false" |
|
Client | wahr | "true" oder "false" |
|
Cluster | false (Standardeinstellung) | false |
|
Cluster | wahr | wahr |
|
Spark-Executor-Logs
In den folgenden Tabellen wird die Auswirkung verschiedener Property-Einstellungen auf das Ziel der Spark-Executor-Protokolle aufgeführt.
dataproc: |
Executor-Protokoll |
---|---|
false (Standardeinstellung) | In Logging: yarn-userlogs unter der Clusterressource |
wahr | In Logging unter der Jobressource dataproc.job.yarn.container |
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-Treiberprotokolle
In den folgenden Tabellen sind die Auswirkungen unterschiedlicher 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 entweder im Staging-Bucket oder in dem Bucket gespeichert, den Sie beim Erstellen des Clusters angegeben haben. Ein Link zu die Jobausgabe in Cloud Storage im Job.driverOutputResourceUri zurückgegeben von:
- 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 ...