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 ...