En esta página, se describe la secuencia de pasos involucrados con el envío, la ejecución y la finalización de un trabajo de Dataproc. También analiza la regulación y depuración del trabajo.
Flujo de trabajos de Dataproc
- El usuario envía el trabajo a Dataproc.
- JobStatus.State se marca como
PENDING
.
- JobStatus.State se marca como
- El trabajo espera ser adquirido por el agente
dataproc
.- Si lo adquiere, JobStatus.State se marca como
RUNNING
. - Si no lo adquiere debido a una falla del agente, una falla de la red de Compute Engine u otra causa, el trabajo se marca como
ERROR
.
- Si lo adquiere, JobStatus.State se marca como
- Una vez que el agente adquiere un trabajo, verifica que haya suficientes recursos disponibles en el nodo principal del clúster de Dataproc para iniciar el controlador.
- Si no hay disponibles recursos suficientes, el trabajo se retrasa (limita).
JobStatus.Substate muestra el trabajo como
QUEUED
y Job.JobStatus.details proporciona información sobre la causa del retraso.
- Si no hay disponibles recursos suficientes, el trabajo se retrasa (limita).
JobStatus.Substate muestra el trabajo como
- Si hay suficientes recursos disponibles, el agente
dataproc
inicia el proceso del controlador de trabajo.- En esta etapa, por lo general, hay una o más aplicaciones que se ejecutan en Apache Hadoop YARN. Sin embargo, es posible que las aplicaciones YARN no se inicien hasta que el controlador termine de analizar los directorios de Cloud Storage o de realizar otras tareas de trabajo de inicio.
- El agente
dataproc
envía actualizaciones a Dataproc de forma periódica sobre el progreso del trabajo, las métricas del clúster y las aplicaciones YARN asociadas con el trabajo (consulta Supervisión y depuración de trabajos). - Aplicaciones de YARN completas.
- El trabajo sigue considerándose como
RUNNING
mientras que el controlador realiza cualquier tarea de finalización del trabajo, como la materialización de las colecciones. - Una falla no controlada o no capturada en el subproceso principal puede dejar el controlador en estado zombi (marcado como
RUNNING
sin información sobre la causa de la falla).
- El trabajo sigue considerándose como
- El controlador sale.
El agente
dataproc
informa la finalización a Dataproc.- Dataproc informa el trabajo como
DONE
.
- Dataproc informa el trabajo como
Simultaneidad de los trabajos
Puedes configurar la cantidad máxima de trabajos simultáneos de Dataproc con la propiedad de clúster dataproc:dataproc.scheduler.max-concurrent-jobs cuando creas un clúster. Si no se configura este valor de propiedad, el límite superior en los trabajos simultáneos se calcula como max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)
. masterMemoryMb
se determina por el tipo de máquina de la VM principal. masterMemoryMbPerJob
es 1024
de forma predeterminada, pero se puede configurar durante la creación del clúster con la propiedad dataproc:dataproc.scheduler.driver-size-mb del clúster.