Salida del controlador de trabajos

Puedes enviar, supervisar y controlar trabajos fácilmente en clústeres de Dataproc mediante la herramienta de línea de comandos de gcloud, Google Cloud Console o la API de REST de Cloud Dataproc. Cuando usas uno de estos mecanismos para enviar tu trabajo, Cloud Dataproc recopila automáticamente el resultado del controlador (consola) del trabajo y lo pone a tu disposición. Esto significa que puedes revisar con rapidez el resultado del controlador sin tener que mantener una conexión con el clúster mientras se ejecutan tus trabajos o analizar archivos de registro complicados.

Configuración del registro

De forma predeterminada, Cloud Dataproc usa un nivel de registro predeterminado de WARN para los programas de controladores. Esta configuración se puede ajustar con la línea de comandos, que te permite enviar un trabajo con la opción --driver-log-levels.

El paquete root especial controla el nivel de registrador raíz. Por ejemplo:

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

El registro se puede establecer a un nivel más detallado para cada trabajo. Por ejemplo, para ayudar a depurar problemas cuando se leen archivos de Cloud Storage, puedes enviar un trabajo con la opción --driver-log-levels y especificar el nivel de registro DEBUG de la siguiente manera:

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

Nivel de registro del ejecutor de Spark

Puedes configurar los niveles de registro del ejecutor de Spark en los nodos del clúster con una acción de inicialización del clúster que edite o reemplace el archivo /etc/spark/conf/log4j.properties (también consulta Apache Log4j 2).

Archivo /etc/spark/conf/log4j.properties de muestra:

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

Otros componentes de código abierto tienen archivos log4j.properties similares que puedes editar o reemplazar con una acción de inicialización para controlar el resultado del registro.

Accede al resultado del controlador del trabajo

Puedes acceder al resultado del controlador del trabajo de Cloud Dataproc con Cloud Console, la herramienta de línea de comandos de gcloud o Cloud Storage.

Comando de gcloud

Cuando envías un trabajo con el comando gcloud dataproc jobs submit, el resultado del controlador del trabajo se muestra en la consola. Puedes “reunificar” el resultado del controlador más adelante, en una computadora diferente o en una nueva ventana si pasas el ID de tu trabajo al comando gcloud dataproc jobs wait. El ID del trabajo es un GUID, como 5c1754a5-34f7-4553-b667-8a1199cb9cab. A continuación, se muestra un ejemplo.

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

Para ver el resultado del controlador del trabajo, ve a la sección Trabajos de tu proyecto de Dataproc y luego haz clic en ID del trabajo para ver el resultado del trabajo.

Si el trabajo está en ejecución, el resultado del controlador del trabajo se actualiza de forma periódica con contenido nuevo.

Cloud Storage

El resultado del controlador del trabajo se almacena en Cloud Storage en el depósito de etapa de pruebas o en el depósito que especificaste cuando creaste tu clúster. Se proporciona un vínculo al resultado del controlador de trabajo en Cloud Storage en el campo Job.driverOutputResourceUri que muestran estas opciones:

  • Una solicitud a la API de jobs.get
  • Un comando gcloud dataproc jobs describe job-id
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...