Soluciona problemas de los 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 los trabajos de Dataproc.

gcloud CLI

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 Cómo ver 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 Cómo ver 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.

Visualiza registros de trabajos en Logging

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

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

Mensajes de error

No se adquirió la tarea

Esto indica que el agente de Dataproc en el nodo principal no pudo adquirir la tarea del plano de control. Esto sucede a menudo debido a problemas de memoria insuficiente (OOM) o de red. Si el trabajo se ejecutó correctamente antes y no cambiaste la configuración de la red, es muy probable que la causa sea la falta de memoria, a menudo como resultado del envío de muchos trabajos que se ejecutan de forma simultánea o de trabajos cuyos controladores consumen mucha memoria (por ejemplo, trabajos que cargan conjuntos de datos grandes en la memoria).

No se encontró ningún agente activo en los nodos principales

Esto 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 memoria insuficiente (OOM) o de red, o si la VM del nodo principal no está en buen estado. Si el trabajo se ejecutó correctamente antes y no cambiaste la configuración de red, es muy probable que la causa sea la falta de memoria (OOM), que suele deberse al envío de muchos trabajos que se ejecutan de forma simultánea o de trabajos cuyos controladores consumen una cantidad significativa de memoria (trabajos que cargan grandes conjuntos de datos en la memoria).

Para resolver el problema, puedes probar las siguientes acciones:

No se encontró la tarea

Este error indica que se borró el clúster mientras se ejecutaba un trabajo. Puedes realizar las siguientes acciones para identificar la principal que realizó la eliminación y confirmar que esta se produjo cuando se estaba ejecutando un trabajo:

  • Consulta los registros de auditoría de Dataproc para identificar el principal que realizó la operación de eliminación.

  • Usa Logging o gcloud CLI para verificar que el último estado conocido de la aplicación de YARN haya sido RUNNING:

    • Usa el siguiente filtro en Logging:
    resource.type="cloud_dataproc_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.cluster_uuid="CLUSTER_UUID"
    "YARN_APPLICATION_ID State change from"
    
    • Ejecuta gcloud dataproc jobs describe job-id --region=REGION y, luego, verifica yarnApplications: > STATE en el resultado.
  • Si la principal que borró el clúster es la cuenta de servicio del agente de servicio de Dataproc, verifica si el clúster se configuró con una duración de eliminación automática inferior a la duración del trabajo.

Para evitar errores de Task not found, usa la automatización para asegurarte de que los clústeres no se borren antes de que se completen todos los trabajos en ejecución.

No queda espacio en el dispositivo

Dataproc escribe datos de HDFS y datos temporales en el disco. Este mensaje de error indica que el clúster se creó con espacio en disco insuficiente. Para analizar y evitar este error, haz lo siguiente:

  • Verifica el tamaño del disco principal del clúster que se indica en la pestaña Configuración de la página Detalles del clúster en la consola de Google Cloud . El tamaño mínimo recomendado del disco es de 1000 GB para los clústeres que usan el tipo de máquina n1-standard-4 y de 2 TB para los clústeres que usan el tipo de máquina n1-standard-32.

  • Si el tamaño del disco del clúster es inferior al recomendado, vuelve a crear el clúster con al menos el tamaño de disco recomendado.

  • Si el tamaño del disco es el recomendado o mayor, usa SSH para conectarte a la VM principal del clúster y, luego, ejecuta df -h en la VM principal para verificar el uso del disco y determinar si se necesita espacio adicional.

  • Recopila y verifica las métricas del disco.