Output e log del job

Quando invii un job Managed Service for Apache Spark, Managed Service for Apache Spark raccoglie automaticamente l' output del job e lo rende disponibile. Ciò significa che puoi rivedere 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 di Spark: i log del driver Spark e i log dell'esecutore 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 "Submitted application xxx" di spark-submit, e possono essere utili per il debug degli errori dei job.

Il driver del job Managed Service for Apache Spark, che è distinto dal driver Spark, è un launcher per molti tipi di job. Quando avvia 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 for Apache Spark in modalità Spark client o cluster:

  • Modalità client: il driver Spark esegue il job nel processo spark-submit e i log di Spark vengono inviati al driver del job Managed Service for Apache Spark.

  • Modalità cluster: 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 for Apache Spark.

Panoramica delle proprietà dei job Managed Service for Apache Spark e Spark

Proprietà Valore Predefinito Descrizione
dataproc:dataproc.logging.stackdriver.job.driver.enable true o false false Deve essere impostata 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 abilitare i log del driver del 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 true o false false Deve essere impostata al momento della creazione del cluster. Se true, i log dei container YARN del job sono associati alla risorsa del job; se false, i log dei container YARN del job sono associati alla risorsa del cluster.
spark:spark.submit.deployMode client o cluster client Controlla la modalità client o cluster di Spark.

Job Spark inviati utilizzando l'API jobs di Managed Service for Apache Spark

Le tabelle in questa sezione elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dell'output del driver del job Managed Service for Apache Spark quando i job vengono inviati tramite l'API jobs di Managed Service for Apache Spark, che include l'invio dei job tramite laGoogle Cloud console, gcloud CLI e le librerie client Cloud.

Le proprietà di Managed Service for 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à di Spark possono essere impostate anche con il flag --properties (senza il prefisso "spark:") quando un job viene inviato all'API jobs di Managed Service for Apache Spark e verranno applicate solo al job.

Output del driver del job Managed Service for Apache Spark

Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dell'output del driver del job Managed Service for Apache Spark.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Output
false (impostazione predefinita)
  • Trasmissione al client
  • In Cloud Storage all'indirizzo generato da Managed Service for Apache Spark driverOutputResourceUri
  • Non in Logging
true
  • Trasmissione al client
  • In Cloud Storage all'indirizzo generato da Managed Service for Apache Spark driverOutputResourceUri
  • In Logging: dataproc.job.driver nella risorsa del job.

Log del driver Spark

Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log del driver Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Output del driver
client false (impostazione predefinita) true o false
  • Trasmissione al client
  • In Cloud Storage all'indirizzo generato da Managed Service for Apache Spark driverOutputResourceUri
  • Non in Logging
client true true o false
  • Trasmissione al client
  • In Cloud Storage all'indirizzo generato da Managed Service for Apache Spark driverOutputResourceUri
  • In Logging: dataproc.job.driver nella risorsa del job
cluster false (impostazione predefinita) false
  • Non trasmesso al client
  • Non in Cloud Storage
  • In Logging yarn-userlogs nella risorsa del cluster
cluster true true
  • Non trasmesso al client
  • Non in Cloud Storage
  • In Logging: dataproc.job.yarn.container nella risorsa del job

Log dell'esecutore Spark

Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log dell'esecutore Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Log dell'esecutore
false (impostazione predefinita) In Logging: yarn-userlogs nella risorsa del cluster
true In Logging dataproc.job.yarn.container nella risorsa del job

Job Spark inviati senza utilizzare l'API jobs di Managed Service for Apache Spark

Questa sezione elenca l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log dei job Spark quando i job vengono inviati senza utilizzare l'API jobs di Managed Service for Apache Spark, ad esempio quando si invia un job direttamente su un nodo del cluster utilizzando spark-submit o quando si utilizza un notebook Jupyter o Zeppelin. Questi job non hanno ID o driver di job Managed Service for Apache Spark.

Log del driver Spark

Le tabelle seguenti elencano l'effetto delle diverse impostazioni delle proprietà sulla destinazione dei log del driver Spark per i job non inviati tramite l'API jobs di Managed Service for Apache Spark.

spark:
spark.submit.deployMode
Output del driver
client
  • Trasmissione al client
  • Non in Cloud Storage
  • Non in Logging
cluster
  • Non trasmesso al client
  • Non in Cloud Storage
  • In Logging yarn-userlogs nella risorsa del cluster

Log dell'esecutore Spark

Quando i job Spark non vengono inviati tramite l'API jobs di Managed Service for Apache Spark, i log dell'esecutore si trovano in Logging yarn-userlogs nella risorsa del cluster.

Visualizza l'output del job

Puoi accedere all'output del job Managed Service for Apache Spark nella Google Cloud console, 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 del job 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 "riunire" 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, 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 in nel bucket di staging o nel bucket specificato quando hai creato il cluster. Un link all' output del job in Cloud Storage è fornito nel 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
    ...
    

Logging

Per informazioni su come visualizzare l'output del job Managed Service for Apache Spark in Logging, consulta Log di Managed Service for Apache Spark.