Output driver job

Puoi inviare, monitorare e controllare facilmente i job sui cluster Dataproc utilizzando lo strumento a riga di comando gcloud, Google Cloud Console o l'API REST di Cloud Dataproc. Quando utilizzi uno di questi meccanismi per inviare il tuo job, Cloud Dataproc raccoglie automaticamente l'output del driver (console) dal job e lo rende disponibile. Ciò consente di esaminare rapidamente l'output del driver senza dover mantenere una connessione al cluster durante l'esecuzione dei job o la consultazione di file di log complessi.

Configurazione del logging

Per impostazione predefinita, Cloud Dataproc utilizza un livello di logging predefinito di WARN per i programmi dei driver. Questa impostazione può essere regolata quando utilizzi la riga di comando, che ti consente di inviare un job con l'opzione --driver-log-levels.

Il pacchetto speciale root controlla il livello del registratore principale. Ad esempio:

gcloud dataproc jobs submit hadoop ...\
  --driver-log-levels root=FATAL,com.example=INFO

Il logging può essere impostato a un livello più dettagliato per ogni job. Ad esempio, per facilitare il debug dei problemi durante la lettura di file da Cloud Storage, puoi inviare un job con l'opzione --driver-log-levels, specificando il livello di log DEBUG come segue:

gcloud dataproc jobs submit hadoop ...\
  --driver-log-levels com.google.cloud.hadoop.gcsio=DEBUG

Impostazione dei livelli di log degli esecutori

Puoi impostare i livelli di log degli esecutori di componenti Spark, Hadoop, Flink e di altri componenti OSS sui nodi dei cluster con un'azione di inizializzazione del cluster che modifica o sostituisce il file .../log4j.properties (vedi Apache Log4j 2).

File di esempio /etc/spark/conf/log4j.properties:

# Set everything to be logged to the console.
log4j.rootCategory=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c: %m%n

# Settings to quiet third party logs.
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO

# Reduce verbosity for other core classes.
log4j.logger.org.apache.spark=WARN
log4j.logger.org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter=WARN
log4j.logger.org.apache.hadoop.conf.Configuration.deprecation=WARN
log4j.logger.org.spark-project.jetty.server.handler.ContextHandler=WARN

# Spark 2.0 specific output.
log4j.logger.org.spark_project.jetty.server.handler.ContextHandler=WARN.

Accesso all'output del driver del job

Puoi accedere all'output del driver dei job di Cloud Dataproc utilizzando Cloud Console, l'interfaccia a riga di comando di Google Cloud o Cloud Storage.

Comando gcloud

Quando invii un job con il comando gcloud dataprocjob sending, nella console viene visualizzato l'output del driver del job. Puoi "rientrare" nel driver di output in un secondo momento, su un computer diverso o in una nuova finestra passando l'ID del job al comando gcloud dataprocjobwait. 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/
...

Console

Per visualizzare l'output del driver del job, vai alla sezione Job di Dataproc del progetto, quindi fai clic sull'ID job per visualizzare l'output del job.

Se il job è in esecuzione, l'output del driver del job viene aggiornato periodicamente con nuovi contenuti.

Cloud Storage

L'output del driver del job viene archiviato in Cloud Storage nel bucket di gestione temporanea o nel bucket specificato al momento della creazione del cluster. Un link all'output del driver del job in Cloud Storage viene fornito nel campo Job.driverOutputResourceUri restituito da:

  • una richiesta API jobs.get.
  • un comando gcloud dataproc job job-id.
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...