Cycle de vie d'une tâche 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 la tâche à Dataproc.
  2. La tâche attend d'être acquise 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. Après avoir acquis une tâche, l'agent vérifie qu'il y a suffisamment de ressources disponibles sur le nœud maître du cluster Cloud 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
      démarre 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 ne peuvent pas démarrer tant que le pilote n'a pas fini d'analyser les répertoires Cloud Storage ou d'effectuer d'autres étapes du démarrage des tâches.
  5. L'agent dataproc envoie périodiquement des mises à jour à Dataproc sur l'avancement de la tâche, les métriques de cluster et les 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. L'agent dataproc signale l'achèvement de la tâche à Cloud 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 la valeur de cette propriété n'est pas définie, la limite supérieure des tâches simultanées est calculée comme max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5). masterMemoryMb est déterminé par le type de machine de la VM principale. 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