La vida de un trabajo de Cloud Dataproc

En esta página, se describe la secuencia de pasos involucrados con el envío, la ejecución y la finalización de un trabajo de Cloud Dataproc. También analiza la regulación y depuración del trabajo.

Flujo de trabajos de Cloud Dataproc

  1. El usuario envía el trabajo a Cloud Dataproc.
  2. El trabajo espera ser adquirido por el agente dataproc.
    • Si lo adquiere, JobStatus.State se marca como RUNNING.
    • Si no lo adquiere debido a una falla del agente, una falla de la red de Compute Engine u otra causa, el trabajo se marca como ERROR.
  3. Una vez que el agente adquiere el trabajo, verifica que existen suficientes recursos disponibles en el nodo principal del clúster de Cloud Dataproc para iniciar el controlador.
    • Si no hay disponibles recursos suficientes, el trabajo se retrasa (limita). JobStatus.Substate muestra el trabajo como QUEUED y Job.JobStatus.details proporciona información sobre la causa del retraso.
  4. Si hay suficientes recursos disponibles, el agente dataproc inicia el proceso del controlador del trabajo.
    • En esta etapa, generalmente hay una o más aplicaciones activas en Apache Hadoop YARN. Sin embargo, es posible que las aplicaciones YARN no se inicien hasta que el controlador finalice el análisis de los directorios de Cloud Storage o la ejecución de otras tareas de trabajo de inicio.
  5. El agente dataproc normalmente envía actualizaciones a Cloud Dataproc sobre el progreso de los trabajos, las métricas del clúster y las aplicaciones YARN asociadas con el trabajo (consulta Supervisión y depuración de trabajo).
  6. Aplicaciones de YARN completas.
    • El trabajo sigue considerándose como RUNNING mientras que el controlador realiza cualquier tarea de finalización del trabajo, como la materialización de las colecciones.
    • Una falla no controlada o no capturada en el subproceso principal puede dejar el controlador en estado zombi (marcado como RUNNING sin información sobre la causa de la falla).
  7. El controlador sale. El agente dataproc le informa la finalización a Cloud Dataproc.
    • Cloud Dataproc considera el trabajo como DONE.

Supervisión y depuración del trabajo

Usa la herramienta de línea de comandos de gcloud, la API de REST de Cloud Dataproc y Google Cloud Platform Console para analizar y depurar los trabajos de Cloud Dataproc.

Comando de gcloud

Para examinar el estado de un trabajo activo:

gcloud dataproc jobs describe job-id

Para ver el resultado del controlador del trabajo, consulta Cómo acceder al resultado del controlador de trabajo.

API de REST

Llama a jobs.get para examinar los campos JobStatus.State, JobStatus.Substate, JobStatus.details y YarnApplication de un trabajo.

Console

Para ver el resultado del controlador del trabajo, consulta Cómo acceder al resultado del controlador de trabajo.

Para ver el registro del agente dataproc en Stackdriver Logging, selecciona Clúster de Cloud Dataproc→Nombre del clúster→UUID del clúster (Cloud Dataproc Cluster→Cluster Name→Cluster UUID) del selector del clúster del visor de registros.

Luego, usa el selector de registros para seleccionar los registros google.dataproc.agent.

Cómo determinar quién envió el trabajo

Cómo buscar los detalles de un trabajo mostrará quién envió ese trabajo en el campo submittedBy. Por ejemplo, el resultado de este trabajo muestra que user@domain envió el trabajo de ejemplo a un clúster.

...
placement:
  clusterName: cluster-name
  clusterUuid: cluster-uuid
reference:
  jobId: job-uuid
  projectId: project
status:
  state: DONE
  stateStartTime: '2018-11-01T00:53:37.599Z'
statusHistory:
- state: PENDING
  stateStartTime: '2018-11-01T00:33:41.387Z'
- state: SETUP_DONE
  stateStartTime: '2018-11-01T00:33:41.765Z'
- details: Agent reported job success
  state: RUNNING
  stateStartTime: '2018-11-01T00:33:42.146Z'
submittedBy: user@domain
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Dataproc
¿Necesitas ayuda? Visita nuestra página de asistencia.