Cycle de vie d'un job Dataproc

Cette page décrit la séquence des étapes nécessaires à l'envoi, à l'exécution et à l'achèvement d'une tâche Cloud Dataproc. Elle aborde également la limitation des tâches et le débogage.

Flux de tâches Dataproc

  1. L'utilisateur envoie le job à Dataproc.
  2. Le job attend d'être acquis par l'agent dataproc.
    • Si la tâche est acquise, JobStatus.State est marqué comme RUNNING.
    • Si la tâche n'est pas acquise en raison d'une défaillance de l'agent, d'une défaillance du réseau Compute Engine ou pour toute autre raison, la tâche est marquée comme ERROR.
  3. Une fois qu'une tâche est acquise par l'agent, celui-ci vérifie qu'il y a suffisamment de ressources disponibles sur le nœud maître du cluster Dataproc pour démarrer le pilote.
    • S'il n'y a pas assez de ressources, la tâche est retardée (limitée). JobStatus.Substate affiche la tâche comme QUEUED, et Job.JobStatus.details fournit des informations sur les causes du retard.
  4. Si suffisamment de ressources sont disponibles, l'agent dataproc lance le processus du pilote de tâches.
    • À ce stade, une ou plusieurs applications sont généralement exécutées dans Apache Hadoop YARN. Toutefois, les applications YARN peuvent ne pas démarrer tant que le pilote n'a pas fini d'analyser les répertoires Cloud Storage ou d'effectuer d'autres tâches de démarrage.
  5. L'agent dataproc envoie régulièrement des mises à jour à Dataproc lors de l'avancement du job, aux métriques du cluster et aux applications Yarn associées à la tâche (consultez la section Surveillance et débogage des tâches).
  6. Les applications YARN s'achèvent.
    • La tâche est toujours signalée comme RUNNING pendant que le pilote effectue toutes les étapes pour la finaliser, comme par exemple matérialiser les collections.
    • Une défaillance non gérée ou non détectée dans le fil de discussion principal peut laisser le pilote à l'état de zombie (marqué comme RUNNING sans information quant à la cause de la défaillance).
  7. Le pilote se ferme. dataproc agent signale l'achèvement de la tâche à Dataproc.
    • Dataproc signale la tâche comme étant terminée (DONE).

Simultanéité des tâches

Vous pouvez configurer le nombre maximal de tâches Dataproc simultanées avec la propriété de cluster dataproc:dataproc.scheduler.max-concurrent-jobs lorsque vous créez un cluster. Si cette valeur de propriété n'est pas définie, la limite supérieure de jobs simultanés est calculée comme suit : max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5). masterMemoryMb est déterminé par le type de machine de la VM maître. masterMemoryMbPerJob est 1024 par défaut, mais peut être configuré lors de la création du cluster avec la propriété de cluster dataproc:dataproc.scheduler.driver-size-mb.

Étape suivante