Solucionar problemas de trabajos de Dataproc

En esta página, se proporciona información para ayudarte a supervisar y depurar trabajos de Dataproc y comprender los mensajes de error de los trabajos de Dataproc.

Supervisión y depuración del trabajo

Usa Google Cloud CLI, la API de REST de Dataproc y la consola de Google Cloud para analizar y depurar trabajos de Dataproc.

CLI de gcloud

Para examinar el estado de un trabajo activo:

gcloud dataproc jobs describe job-id \
    --region=region

Para ver el resultado del controlador del trabajo, consulta Visualiza el resultado del trabajo.

API de REST

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

Console

Para ver el resultado del controlador del trabajo, consulta Visualiza el resultado del trabajo.

Para ver el registro del agente de Dataproc en Logging, selecciona Clúster de Dataproc→Nombre del clúster→UUID del clúster en el selector del clúster del Explorador de registros.

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

Ver registros de trabajos en Logging

Si un trabajo falla, puedes acceder a los registros de trabajos en Logging.

Cómo determinar quién envió un 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

Mensajes de error

  • La tarea no se adquirió: Indica que el agente de Dataproc en el nodo principal no pudo adquirir la tarea desde el plano de control. Esto sucede a menudo debido a problemas de memoria insuficiente (OOM) o de red. Si el trabajo se ejecutó de forma correcta y no cambiaste la configuración de red, el OOM es la causa más probable, el resultado del envío de muchos trabajos o trabajos en ejecución simultáneos cuyos controladores consumen memoria significativa (por ejemplo, los trabajos que cargan conjuntos de datos grandes en la memoria).

  • No se encontró ningún agente en los nodos principales que esté activo: Indica que el agente de Dataproc en el nodo principal no está activo y no puede aceptar trabajos nuevos. Esto suele suceder debido a problemas de falta de memoria (OOM) o de red, o si la VM del nodo principal está en mal estado. Si el trabajo se ejecutó de forma correcta antes y no cambiaste la configuración de red, OOM es la causa más probable, que a menudo es el resultado del envío de muchos trabajos que se ejecutan en simultáneo o trabajos cuyos controladores consumen una memoria considerable (trabajos que cargan conjuntos de datos grandes en la memoria). Este problema se puede resolver si reinicias (detienes, luego inicias) el clúster de Dataproc o vuelves a intentar el envío de trabajos más tarde. Nota: Detener un clúster hace que fallen todos los trabajos en ejecución.

  • Tarea no encontrada: Indica que el clúster se borró mientras se ejecutaba un trabajo. Para evitar este error, antes de enviar un trabajo, confirma que el estado del clúster sea RUNNING. Para ello, consulta el estado del clúster en la página Clústeres de la consola de Google Cloud, ejecuta el comando gcloud dataproc clusters describe o verifica ClusterStatus.State con una solicitud a la API clusters.get.