Quando invii un job Dataproc, Dataproc raccoglie automaticamente l'output del job e 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 dei driver Spark e log esecutori Spark.
I log del driver Spark contengono l'output del job. I log dell'eseguitore 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 degli errori del job.
Il driver del job di Dataproc, diverso dal driver Spark,
è un'utilità di avvio per molti tipi di job. All'avvio dei job Spark, questi vengono eseguiti
un wrapper sull'eseguibile spark-submit
sottostante, che avvia la Spark
conducente. 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 container YARN. Driver Spark di log 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. Quando true ,
l'output del driver del job è in Logging,
associate alla risorsa job; quando false , conducente del lavoro
l'output 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 , vengono associati i log del container YARN del job
con la risorsa job; quando false , log del container YARN del job
alla risorsa 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 seguenti tabelle elencano l'effetto delle diverse impostazioni delle proprietà sul destinazione dell'output del driver del 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 | vero o falso |
|
cluster | false (valore predefinito) | falso |
|
cluster | true | true |
|
Log esecutore Spark
Le seguenti tabelle elencano l'effetto delle diverse impostazioni delle proprietà sul dei log degli esecutori Spark.
dataproc: |
Log esecutore |
---|---|
false (valore predefinito) | In Log: yarn-userlogs nella risorsa cluster |
true | In Logging dataproc.job.yarn.container nella risorsa del job |
Job Spark inviati senza utilizzare l'API jobs
Dataproc
Questa sezione elenca l'effetto delle diverse impostazioni della proprietà sul
destinazione dei log dei job Spark quando vengono inviati i job
senza utilizzare l'API Dataproc jobs
, ad esempio durante l'invio
un job direttamente su un nodo del cluster utilizzando spark-submit
o un job di Jupyter
o 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 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 output job
Puoi accedere all'output del job Dataproc dalla console Google Cloud, gcloud CLI, Cloud Storage o Logging.
Console
Per visualizzare l'output del job, vai alla sezione Job di Dataproc del tuo progetto, quindi fai clic sull'ID job per visualizzare l'output del job.
Se il job è in esecuzione, l'output del job viene aggiornato periodicamente con nuovi contenuti.
Comando g-cloud
Quando invii un'offerta di lavoro con
gcloud dataproc job send
l'output del job viene visualizzato nella console. Puoi "ripartecipare"
in un secondo momento, su un altro computer o
una nuova finestra passando l'ID del job alla
gcloud dataproc job 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/ ...
Cloud Storage
L'output del job viene archiviato in Cloud Storage nel bucket di staging o nel bucket specificato durante la creazione del cluster. Un link a l'output del job in Cloud Storage è fornito Job.driverOutputResourceUri campo restituito da:
- una richiesta all'API jobs.get.
- gcloud dataproc job describe job-id
.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...