Quando invii un job Managed Service per Apache Spark, Managed Service per Apache Spark raccoglie automaticamente l'output del job e lo rende disponibile. Ciò significa che puoi esaminare rapidamente l'output del 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, mentre i log dell'esecutore Spark contengono l'output dell'eseguibile o del launcher del job, ad esempio un messaggio spark-submit "Submitted application xxx" e possono essere utili per il debug degli errori del job.
Il driver del job Managed Service per Apache Spark, distinto dal driver Spark,
è un launcher per molti tipi di job. Quando avvii 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 Managed Service per Apache Spark in modalità Spark
client o cluster:
Modalità
client: il driver Spark esegue il job nel processospark-submite i log Spark vengono inviati al driver del job Managed Service per Apache Spark.clustermodalità: il driver Spark esegue il job in un container YARN. I log del driver Spark non sono disponibili per il driver del job Managed Service per Apache Spark.
Panoramica di Managed Service per Apache Spark e delle proprietà dei job Spark
| Proprietà | Valore | Predefinito | Descrizione |
|---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
vero o falso | falso | Deve essere impostato al momento della creazione del cluster. Quando true,
l'output del driver del job si trova in Logging,
associato alla risorsa job; quando false, l'output del driver del job
non si trova in Logging.Nota: per attivare i log dei driver dei job in Logging sono necessarie anche le seguenti impostazioni delle 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 |
vero o falso | falso | Deve essere impostato al momento della creazione del cluster.
Quando true, i log dei container YARN dei job sono associati
alla risorsa job; quando false, i log dei container YARN dei job
sono associati alla risorsa cluster. |
spark:spark.submit.deployMode |
client o cluster | client | Controlla la modalità Spark client o cluster. |
Job Spark inviati utilizzando l'API Managed Service per Apache Spark jobs
Le tabelle in questa sezione elencano l'effetto di diverse impostazioni delle proprietà sulla destinazione dell'output del driver di job di Managed Service per Apache Spark quando i job vengono inviati tramite l'API jobs di Managed Service per Apache Spark, che include l'invio di job tramite la consoleGoogle Cloud , gcloud CLI e le librerie client Cloud.
Le proprietà di Managed Service per Apache Spark 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 Managed Service per Apache Spark jobs e verranno applicate solo al job.
Output del driver del job Managed Service per Apache Spark
Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dell'output del driver del job di Managed Service per Apache Spark.
dataproc: |
Output |
|---|---|
| false (impostazione predefinita) |
|
| true |
|
Log del driver Spark
Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log del driver Spark.
spark: |
dataproc: |
dataproc: |
Output del driver |
|---|---|---|---|
| client | false (impostazione predefinita) | vero o falso |
|
| client | true | vero o falso |
|
| cluster | false (impostazione predefinita) | falso |
|
| cluster | true | true |
|
Log esecutore Spark
Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log dell'executor Spark.
dataproc: |
Log esecutore |
|---|---|
| false (impostazione predefinita) | In Logging: yarn-userlogs nella risorsa cluster |
| true | In Logging dataproc.job.yarn.container nella risorsa job |
Job Spark inviati senza utilizzare l'API Managed Service per Apache Spark jobs
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 Managed Service for Apache Spark jobs, ad esempio quando un job viene inviato direttamente su un nodo del cluster utilizzando spark-submit o quando si utilizza un notebook Jupyter o Zeppelin. Questi job non hanno ID job o driver Managed Service per Apache Spark.
Log del driver Spark
Le tabelle seguenti elencano l'effetto di diverse impostazioni delle proprietà sulla
destinazione dei log del driver Spark per i job non inviati tramite l'API Managed Service per Apache Spark jobs.
spark: |
Output del driver |
|---|---|
| client |
|
| cluster |
|
Log esecutore Spark
Quando i job Spark non vengono inviati tramite l'API Managed Service per Apache Spark jobs, i log
dell'executor si trovano in Logging yarn-userlogs nella risorsa cluster.
Visualizza l'output del job
Puoi accedere all'output del job Managed Service for Apache Spark nella console Google Cloud , in gcloud CLI, in Cloud Storage o in Logging.
Console
Per visualizzare l'output del job, vai alla sezione Job di Managed Service for Apache Spark del tuo progetto, quindi fai clic sull'ID job per visualizzare l'output del job.
Se il job è in esecuzione, l'output viene aggiornato periodicamente con nuovi contenuti.
Comando g-cloud
Quando invii un job con il
comando gcloud dataproc jobs submit, l'output del job viene visualizzato nella console. Puoi "ricongiungerti"
all'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,
ad esempio 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 all'output del job in Cloud Storage è fornito nel campo Job.driverOutputResourceUri restituito da:
- una richiesta 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 ...