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 anteriormente y no cambiaste la configuración de la 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 este problema, reinicia (detén y, luego, inicia) el clúster de Dataproc o vuelve a intentar enviar el trabajo más tarde. Nota: Si detienes un clúster, fallarán todos los trabajos en ejecución.
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 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, verificayarnApplications: > STATE
en el resultado.
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.