Quando invii un job Dataproc, Dataproc raccoglie automaticamente l'output del job e te lo rende disponibile. Ciò significa che puoi esaminare rapidamente l'output dei job senza dover mantenere una connessione al cluster durante l'esecuzione dei job o esaminare file di log complicati.
Log di Spark
Esistono due tipi di log Spark: log del driver Spark e log dell'executor Spark.
I log del driver Spark contengono l'output del job. I log dell'esecutore Spark contengono l'output dell'eseguibile o del programma di avvio del job, ad esempio un messaggio spark-submit
"Richiesta inviata xxx" e possono essere utili per eseguire il debug dei problemi del job.
Il driver di job Dataproc, distinto dal driver Spark, è un programma di avvio per molti tipi di job. Quando vengono avviati i job Spark, viene eseguito come wrapper sull'eseguibile spark-submit
sottostante, che avvia il driver Spark. Il driver Spark esegue il job sul cluster Dataproc in modalità Spark
client
o cluster
:
Modalità
client
: il driver Spark esegue il job nel processospark-submit
e i log di Spark vengono inviati al driver del job Dataproc.Modalità
cluster
: il driver Spark esegue il job in un contenitore YARN. I log del driver Spark non sono disponibili per il driver del job Dataproc.
Panoramica delle proprietà dei job Dataproc e Spark
Proprietà | Valore | Predefinito | Descrizione |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
true o false | falso | Deve essere impostato al momento della creazione del cluster. Se true ,
l'output del driver del job è in Logging,
associato alla risorsa del job; se false , l'output del driver del job
non è in Logging.Nota: per attivare i log del driver dei job in Logging sono necessarie anche le seguenti impostazioni della proprietà del cluster, che vengono impostate per impostazione predefinita quando viene creato un cluster: dataproc:dataproc.logging.stackdriver.enable=true
e dataproc:jobs.file-backed-output.enable=true
|
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable |
true o false | falso | Deve essere impostato al momento della creazione del cluster.
Se true , i log dei contenitori YARN del job sono associati
alla risorsa del job; se false , i log dei contenitori YARN del job
sono associati alla risorsa del cluster. |
spark:spark.submit.deployMode |
client o cluster | client | Controlla la modalità Spark client o cluster . |
Job Spark inviati utilizzando l'API jobs
Dataproc
Le tabelle in questa sezione elencano l'effetto di diverse impostazioni delle proprietà sulla destinazione dell'output del driver del job Dataproc quando i job vengono inviati tramite l'API Dataproc jobs
, che include l'invio dei job tramite la console Google Cloud, gcloud CLI e le librerie client Cloud.
Le proprietà Dataproc e Spark elencate possono essere impostate con il flag --properties
quando viene creato un cluster e verranno applicate a tutti i job Spark eseguiti sul cluster. Le proprietà Spark possono essere impostate anche con il flag --properties
(senza il prefisso "spark:") quando un job viene inviato all'API jobs
Dataproc e verranno applicate solo al job.
Output del driver del job Dataproc
Le tabelle seguenti elencano l'effetto di impostazioni di proprietà diverse sulla destinazione dell'output del driver dei job Dataproc.
dataproc: |
Output |
---|---|
false (valore predefinito) |
|
true |
|
Log del driver Spark
Le tabelle seguenti elencano l'effetto di impostazioni di proprietà diverse sulla destinazione dei log del driver Spark.
spark: |
dataproc: |
dataproc: |
Output del driver |
---|---|---|---|
client | false (valore predefinito) | true o false |
|
client | true | true o false |
|
cluster | false (valore predefinito) | falso |
|
cluster | true | true |
|
Log dell'esecutore Spark
Le tabelle seguenti elencano l'effetto di impostazioni di proprietà diverse sulla destinazione dei log dell'executor Spark.
dataproc: |
Log dell'eseguitore |
---|---|
false (valore predefinito) | In Log: yarn-userlogs nella risorsa cluster |
true | In Logging dataproc.job.yarn.container nella risorsa job |
Job Spark inviati senza utilizzare l'API jobs
Dataproc
Questa sezione elenca l'effetto di diverse impostazioni delle proprietà sulla destinazione dei log dei job Spark quando i job vengono inviati senza utilizzare l'API jobs
Dataproc, ad esempio quando si invia un job direttamente su un nodo del cluster utilizzando spark-submit
o quando si utilizza un Jupyter o un notebook Zeppelin. Questi job non hanno ID job o driver Dataproc.
Log del driver Spark
Le seguenti tabelle elencano l'effetto di diverse impostazioni delle proprietà sulla destinazione dei log del driver Spark per i job non inviati tramite l'API Dataproc jobs
.
spark: |
Output del driver |
---|---|
client |
|
cluster |
|
Log dell'esecutore Spark
Quando i job Spark non vengono inviati tramite l'API jobs
Dataproc, i log dell'executor si trovano in Logging yarn-userlogs
nella risorsa del cluster.
Visualizza l'output del job
Puoi accedere all'output del job Dataproc nella console Google Cloud, nella CLI gcloud, in Cloud Storage o in Logging.
Per visualizzare l'output del job, vai alla sezione Job di Dataproc del tuo progetto, quindi fai clic sull'ID job per visualizzarlo.

Se il job è in esecuzione, l'output viene aggiornato periodicamente con nuovi contenuti.
Quando invii un job con il comando
gcloud dataproc jobs submit, l'output del job viene visualizzato nella console. Puoi "ricongiungere"
l'output in un secondo momento, su un altro computer o in
una nuova finestra passando l'ID del job al
comando gcloud dataproc jobs wait. L'ID job è un
GUID,
come 5c1754a5-34f7-4553-b667-8a1199cb9cab
. Ecco un esempio.
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/ ...
L'output del job viene archiviato in Cloud Storage nel bucket di staging o nel bucket specificato durante la creazione del cluster. Un link all'output del job in Cloud Storage è fornito nel campo Job.driverOutputResourceUri restituito da:
- una richiesta all'API jobs.get.
- un comando gcloud dataproc jobs describe job-id.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...