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 de trabajos, 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 de trabajos, consulta Cómo ver el resultado del trabajo.

Para ver el registro del agente de dataproc en Registros, selecciona Clúster de Dataproc→Nombre del clúster→UUID del clúster en el selector de clústeres 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ó 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

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 la tarea se ejecutó correctamente antes y no cambiaste la configuración de red, la OOM es la causa más probable, a menudo el resultado del envío de muchas tareas que se ejecutan de forma simultánea o tareas cuyos controladores consumen memoria significativa (por ejemplo, tareas 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 sucede a menudo debido a problemas de memoria insuficiente (OOM) o de red, o si la VM del nodo principal no está en buen estado. Si la tarea se ejecutó correctamente antes y no cambiaste la configuración de red, la OOM es la causa más probable, que a menudo se debe al envío de muchas tareas que se ejecutan de forma simultánea o cuyos controladores consumen memoria significativa (tareas que cargan conjuntos de datos grandes en la memoria).

Para resolver el problema, puedes probar las siguientes acciones:

No se encontró la tarea

Este error indica que el clúster se borró mientras se ejecutaba un trabajo. Puedes realizar las siguientes acciones para identificar el principal que realizó la eliminación y confirmar que la eliminación del clúster 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 fuera RUNNING:

    • Usa el siguiente filtro en Registro:
    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 el 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 de borrado en el disco. Este mensaje de error indica que el clúster se creó con espacio en el disco insuficiente. Para analizar y evitar este error, haz lo siguiente:

  • Verifica el tamaño del disco principal del clúster que se muestra 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 de disco recomendado es 1000 GB para los clústeres que usan el tipo de máquina n1-standard-4 y 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 maestra del clúster y, luego, ejecuta df -h en la VM maestra para verificar la utilización del disco y determinar si se necesita espacio adicional en el disco.

  • Recopila y verifica las métricas del disco.