Présentation des modèles de workflow Managed Service pour Apache Spark

L'API WorkflowTemplates de Managed Service pour Apache Spark 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 un graphe orienté acyclique (DAG) de jobs sur 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, Managed Service pour Apache Spark ne crée pas de cluster et n'envoie pas de jobs à un cluster. Managed Service pour Apache Spark crée ou sélectionne un cluster, puis 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 un cluster "éphémère" pour exécuter les jobs du workflow, puis le supprime une fois le workflow terminé.

Sélecteur de cluster

Un modèle de workflow peut spécifier un cluster existant sur lequel exécuter des jobs de workflow en spécifiant un ou plusieurs libellés utilisateur précédemment associés au cluster. Le workflow s'exécute sur un cluster qui correspond à toutes les étiquettes. Si plusieurs clusters correspondent à toutes les étiquettes, Managed Service pour Apache Spark sélectionne le cluster disposant de la plus grande quantité de mémoire YARN disponible pour exécuter tous les jobs du workflow. À la fin du workflow, Managed Service pour Apache Spark ne supprime pas le cluster sélectionné. Pour en savoir plus, consultez Utiliser des sélecteurs de cluster avec des workflows.

Paramétrage

Si vous exécutez un modèle de workflow plusieurs fois avec des valeurs différentes, utilisez des paramètres pour éviter de modifier le modèle de workflow à chaque exécution :

  1. définir des paramètres dans le modèle, puis

  2. 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é

Les workflows peuvent être instanciés de manière intégrée à l'aide de la commande gcloud avec des fichiers YAML de modèle de workflow ou en appelant l'API InstantiateInline de Managed Service pour Apache Spark (voir 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 d'API transactionnelle de type "fire-and-forget". Les modèles de workflow remplacent les étapes d'un flux classique, qui incluent :

    1. création du cluster
    2. envoi de jobs
    3. interrogation
    4. supprimer le cluster

    Les modèles de workflow utilisent un seul jeton pour suivre la progression de la création à la suppression du cluster, et automatisent la gestion des exceptions et la récupération. Ils simplifient également l'intégration de Managed Service pour Apache Spark à d'autres outils, tels que les fonctions Cloud Run et Managed Service pour Apache Airflow.

  • 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 plus longue durée pour exécuter de manière répétée la même charge de travail sans encourir le coût amorti de la création et de la suppression de clusters.

  • Sécurité IAM granulaire. La création de clusters Managed Service pour Apache Spark et l'envoi de jobs 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.