En esta página se describe la secuencia de pasos que se siguen para enviar, ejecutar y completar un trabajo de Dataproc. También se explica cómo limitar el número de trabajos y depurarlos.
Flujo de tareas de Dataproc
- El usuario envía una tarea a Dataproc.
- JobStatus.State
se marca como
PENDING
.
- JobStatus.State
se marca como
- El trabajo espera a que lo adquiera el agente
dataproc
.- Si se adquiere el trabajo,
JobStatus.State
se marca como
RUNNING
. - Si no se adquiere el trabajo debido a un fallo del agente, un fallo de la red de Compute Engine u otra causa, el trabajo se marca como
ERROR
.
- Si se adquiere el trabajo,
JobStatus.State
se marca como
- Una vez que el agente adquiere un trabajo, verifica que haya suficientes recursos disponibles en el nodo maestro del clúster de Dataproc para iniciar el controlador.
- Si no hay suficientes recursos disponibles, el trabajo se retrasa (se limita).
JobStatus.Substate
muestra el trabajo como
QUEUED
y Job.JobStatus.details proporciona información sobre la causa del retraso.
- Si no hay suficientes recursos disponibles, el trabajo se retrasa (se limita).
JobStatus.Substate
muestra el trabajo como
- Si hay recursos suficientes disponibles, el agente
dataproc
inicia el proceso del controlador de trabajo.- En esta fase, normalmente hay una o varias aplicaciones que se ejecutan en Apache Hadoop YARN. Sin embargo, es posible que las aplicaciones de Yarn no se inicien hasta que el controlador termine de analizar los directorios de Cloud Storage o de realizar otras tareas de inicio.
- El agente
dataproc
envía periódicamente actualizaciones a Dataproc sobre el progreso de las tareas, las métricas de los clústeres y las aplicaciones de Yarn asociadas a la tarea (consulta Monitorización y depuración de tareas). - Se han completado las solicitudes de Yarn.
- La tarea sigue notificándose como
RUNNING
mientras el controlador realiza las tareas de finalización, como materializar colecciones. - Si se produce un error no controlado o no detectado en el hilo principal, el controlador puede quedar en un estado zombie (marcado como
RUNNING
sin información sobre la causa del error).
- La tarea sigue notificándose como
- El conductor sale.
El agente
dataproc
informa a Dataproc de que se ha completado.- Dataproc informa de que la tarea está
DONE
.
- Dataproc informa de que la tarea está
Simultaneidad de tareas
Puedes configurar el número máximo de tareas simultáneas de Dataproc con la propiedad de clúster dataproc:dataproc.scheduler.max-concurrent-jobs al crear un clúster. Si no se define el valor de esta propiedad, el límite superior de los trabajos simultáneos se calcula como max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)
. masterMemoryMb
se determina en función del tipo de máquina de la VM maestra. masterMemoryMbPerJob
es
1024
de forma predeterminada, pero se puede configurar al crear el clúster con la propiedad
dataproc:dataproc.scheduler.driver-size-mb
del clúster.
Siguientes pasos
- Consulta Solucionar problemas con los trabajos.