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 le job à Dataproc.
- JobStatus.State est marqué comme
PENDING
.
- JobStatus.State est marqué comme
- 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
.
- Si la tâche est acquise, JobStatus.State est marqué comme
- 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.
- 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
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.
- 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). - 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.
dataproc
agent signale l'achèvement de la tâche à 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 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
- Consultez l'article Dépannage des jobs.