La vida de un trabajo de Dataproc

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

  1. El usuario envía el trabajo a Dataproc.
  2. 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.
  3. 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.
  4. 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.
  5. 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).
  6. 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).
  7. El controlador sale. El agente dataproc informa la finalización a Dataproc.
    • Dataproc informa el trabajo como DONE.

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.

Qué sigue