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
- L'utilisateur envoie la tâche à Dataproc.
- JobStatus.State est marqué comme
PENDING
.
- JobStatus.State est marqué comme
- 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
.
- Si la tâche est acquise, JobStatus.State est marqué comme
- 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.
- S'il n'y a pas assez de ressources, la tâche est retardée (limitée).
JobStatus.Substate affiche la tâche comme
- 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.
- 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). - 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).
- La tâche est toujours signalée comme
- 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
).
- Dataproc signale la tâche comme étant terminée (
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
- Consultez Dépannage des tâches.