L'API WorkflowTemplates de Dataproc offre un procédé souple et convivial pour la gestion et l'exécution des workflows. Un modèle de workflow est une configuration de workflow réutilisable. Il définit un graphe des tâches avec des informations sur leur emplacement d'exécution.
Points essentiels :
- L'instanciation d'un modèle de workflow permet de lancer un workflow. Un workflow est une opération qui exécute
Graphe orienté acyclique (DAG)
de tâches dans un cluster.
- Si le workflow utilise un cluster géré, il va créer le cluster, exécuter les tâches, puis supprimer le cluster une fois les tâches terminées.
- Si le workflow utilise un sélecteur de cluster, il va exécuter des tâches sur un cluster existant sélectionné.
- Les workflows sont parfaitement adaptés aux flux de tâches complexes. Vous pouvez créer des dépendances de tâches de sorte qu'une tâche ne commence qu'une fois ses dépendances terminées.
- Lorsque vous créez un modèle de workflow, Dataproc ne crée pas de cluster ni n'envoie de tâches à un cluster. Dataproc crée ou sélectionne un cluster et exécute des jobs de workflow sur le cluster lorsqu'un modèle de workflow est instancié.
Types de modèles de workflow
Cluster géré
Un modèle de workflow permet de spécifier un cluster géré. Le workflow crée "éphémère" d'exécuter des jobs de workflow, puis de le supprimer est terminé.
Sélecteur de cluster
Un modèle de workflow peut spécifier un cluster existant sur lequel exécuter des tâches de workflow en spécifiant un ou plusieurs libellés utilisateur précédemment associés au cluster. Le workflow s'exécute un cluster correspondant à toutes les étiquettes. Si plusieurs clusters correspondent à tous les libellés, Dataproc sélectionne le cluster avec la plus grande capacité de mémoire YARN disponible pour exécuter toutes les tâches de workflow. À la fin du workflow, Dataproc ne supprime pas le cluster sélectionné. Pour en savoir plus, consultez la page Utiliser des sélecteurs de cluster avec des workflows.
Paramétrage
Si vous comptez exécuter un modèle de workflow plusieurs fois avec des valeurs différentes, utilisez pour éviter de modifier le modèle de workflow à chaque exécution:
définir des paramètres dans le modèle,
transmettre des valeurs différentes pour les paramètres à chaque exécution.
Pour plus d'informations, consultez la page Paramétrage des modèles de workflow.
Intégré
L'instanciation des workflows peut être intégrée à l'aide de la commande gcloud
, avec les fichiers YAML des modèles de workflow, ou en appelant l'API Dataproc InstantiateInline (consultez la page Utiliser des workflows Dataproc intégrés.
Les workflows intégrés ne créent ni ne modifient les ressources de modèle de workflow.
Cas d'utilisation des modèles de workflow
Automatisation de tâches répétitives. Les workflows encapsulent les configurations et les tâches de cluster fréquemment utilisées.
Modèle d'interaction transactionnel de type "fire and forget" avec l'API. Modèles de workflow remplacer les étapes impliquées dans un flux classique, qui incluent:
- créer le cluster ;
- envoyer des tâches ;
- interrogation
- supprimer le cluster
Les modèles de workflow utilisent un seul jeton pour suivre la progression depuis la création du cluster et automatiser le gestion des exceptions et la récupération. Elles simplifient également l'intégration de Dataproc avec d'autres outils, tels que les fonctions Cloud Run ; et Cloud Composer.
Compatibilité avec les clusters éphémères et à longue durée de vie. Le réglage et le dimensionnement des clusters sont des opérations complexes associées à l'exécution d'Apache Hadoop. Les clusters éphémères (gérés) sont plus faciles à configurer, car ils n'exécutent qu'une seule charge de travail. Les sélecteurs de cluster peuvent être utilisés avec des clusters de longue durée pour exécuter plusieurs fois la même charge de travail sans encourir le coût amorti lié à la création et à la suppression des clusters.
Sécurité IAM granulaire. La création de clusters Dataproc et l'envoi de tâches nécessitent des autorisations IAM de type "tout ou rien". Les modèles de workflow exploitent une autorisation workflowTemplates.instantiate définie par modèle, et ne dépendent pas des autorisations liées aux clusters ou aux tâches.