Resultado y registros del trabajo de Dataproc

Cuando envías un trabajo de Dataproc, Dataproc recopila automáticamente la salida del trabajo, y la pone a tu disposición. Esto significa que puedes revisar con rapidez la salida del trabajo sin tener que mantener un con el clúster mientras se ejecutan tus trabajos o buscas en registros complicados archivos.

Registros de Spark

Existen dos tipos de registros de Spark: los registros del controlador de Spark y los registros del ejecutor de Spark. Los registros del controlador de Spark contienen el resultado del trabajo: Los registros del ejecutor de Spark contienen trabajos ejecutables o el resultado del selector, como spark-submit "Submitted application xxx" mensaje puede ser útil para depurar las fallas del trabajo.

El controlador del trabajo de Dataproc, que es distinto del controlador de Spark, es un selector para muchos tipos de trabajo. Cuando inicias trabajos de Spark, estos se ejecutan como wrapper en el ejecutable spark-submit subyacente, que inicia el Spark controlador. El controlador de Spark ejecuta el trabajo en el clúster de Dataproc en Spark. Modo client o cluster:

  • Modo client: el controlador de Spark ejecuta el trabajo en el proceso spark-submit. y los registros de Spark se envían al controlador del trabajo de Dataproc.

  • Modo cluster: el controlador de Spark ejecuta el trabajo en un contenedor YARN. Controlador de Spark no están disponibles para el controlador de trabajos de Dataproc.

Descripción general de las propiedades del trabajo de Dataproc y Spark

Propiedad Valor Default Descripción
dataproc:dataproc.logging.stackdriver.job.driver.enable True o False falso Se debe configurar en el momento de la creación del clúster. Cuando true, el resultado del controlador del trabajo está en Logging, asociados con el recurso de trabajo; cuando false, controlador de trabajos el resultado no está en Logging.
Nota: La siguiente configuración de la propiedad del clúster también es necesaria para habilitar los registros del controlador de trabajos en Logging y se configuran clúster: dataproc:dataproc.logging.stackdriver.enable=true y dataproc:jobs.file-backed-output.enable=true
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable True o False falso Se debe configurar en el momento de la creación del clúster. Cuando es true, se asocian los registros del contenedor YARN de trabajo con el recurso de trabajo; cuando false, registros de contenedores de YARN están asociados con el recurso del clúster.
spark:spark.submit.deployMode cliente o clúster cliente Controla el modo client o cluster de Spark.

Trabajos de Spark enviados con la API de jobs de Dataproc

En las tablas de esta sección, se muestran los efectos de las diferentes configuraciones de la propiedad en el destino del resultado del controlador del trabajo de Dataproc cuando se envían los trabajos a través de la API de jobs de Dataproc, que incluye el envío de trabajos mediante la consola de Google Cloud, gcloud CLI y bibliotecas cliente de Cloud.

Las propiedades de Dataproc y Spark enumeradas se puede configurar con la marca --properties cuando se crea un clúster, y aplicará a todos los trabajos de Spark que se ejecutan en el clúster; Las propiedades de Spark también se pueden configurar con el --properties (sin el prefijo “spark:”) cuando un trabajo se enviados a la API de jobs de Dataproc y se aplicará solo al trabajo.

Resultado del controlador del trabajo de Dataproc

Las siguientes tablas muestran el efecto de diferentes configuraciones de propiedades en el destino del resultado del controlador del trabajo de Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Salida
false (predeterminado)
  • Transmitido al cliente
  • En Cloud Storage en la instancia de Dataproc driverOutputResourceUri
  • No está en Logging
true
  • Transmitido al cliente
  • En Cloud Storage en la instancia de Dataproc driverOutputResourceUri
  • En Logging: dataproc.job.driver en el recurso de trabajo.

Registros del controlador de Spark

Las siguientes tablas muestran el efecto de diferentes configuraciones de propiedades en el destino de los registros del controlador de Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Salida del controlador
cliente false (predeterminado) True o False
  • Transmitido al cliente
  • En Cloud Storage en la instancia de Dataproc driverOutputResourceUri
  • No está en Logging
cliente true True o False
  • Transmitido al cliente
  • En Cloud Storage en la instancia de Dataproc driverOutputResourceUri
  • En Logging: dataproc.job.driver en el recurso de trabajo
clúster false (predeterminado) falso
  • No se transmitió al cliente
  • No está en Cloud Storage
  • En Logging yarn-userlogs, en el recurso del clúster
clúster true true
  • No se transmitió al cliente
  • No está en Cloud Storage
  • En Logging: dataproc.job.yarn.container en el recurso de trabajo

Registros del ejecutor de Spark

Las siguientes tablas muestran el efecto de diferentes configuraciones de propiedades en el destino de los registros del ejecutor de Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Registro del ejecutor
false (predeterminado) En Logging: yarn-userlogs en el recurso del clúster
true En Logging dataproc.job.yarn.container, en el recurso de trabajo

Trabajos de Spark enviados sin usar la API de jobs de Dataproc

En esta sección, se explica el efecto de diferentes configuraciones de propiedades en el destino de los registros de trabajos de Spark cuando se envían los trabajos sin usar la API de jobs de Dataproc, por ejemplo, cuando envíes un trabajo directamente en el nodo de un clúster con spark-submit o cuando se usa un Jupyter o notebook de Zeppelin. Estos trabajos no tienen IDs o controladores de trabajo de Dataproc.

Registros del controlador de Spark

Las siguientes tablas muestran el efecto de diferentes configuraciones de propiedades en el destino de los registros del controlador de Spark para los trabajos no enviados a través de la API de jobs de Dataproc.

spark:
spark.submit.deployMode
Salida del controlador
cliente
  • Transmitido al cliente
  • No está en Cloud Storage
  • No está en Logging
clúster
  • No se transmitió al cliente
  • No está en Cloud Storage
  • En Logging yarn-userlogs, en el recurso del clúster

Registros del ejecutor de Spark

Cuando los trabajos de Spark no se envían a través de la API jobs de Dataproc, el ejecutor están en Logging yarn-userlogs, en el recurso del clúster.

Ver el resultado del trabajo

Puedes acceder al resultado del trabajo de Dataproc en la consola de Google Cloud. con gcloud CLI, Cloud Storage o Logging.

Console

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

Si el trabajo se está ejecutando, su resultado se actualiza periódicamente con nuevo contenido.

Comando de gcloud

Cuando envías un trabajo con el gcloud dataproc jobs submit , el resultado del trabajo se muestra en la consola. Puedes “volver a unirte” más adelante, en otra computadora o en una ventana nueva; para ello, pasa el ID de tu trabajo al gcloud dataproc jobs wait kubectl. 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/
...

Cloud Storage

El resultado del trabajo se almacena en Cloud Storage en ya sea el bucket de etapa de pruebas o el bucket que especificaste cuando creaste el clúster. Un vínculo a La salida del trabajo en Cloud Storage se proporciona Job.driverOutputResourceUri campo devuelto por:

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

Logging

Consulta Registros de Dataproc. para obtener información sobre cómo ver el resultado del trabajo de Dataproc en Logging.