Pour configurer et exécuter un workflow, procédez comme suit :
- Créez un modèle de workflow.
- Configurez un cluster géré (éphémère) ou sélectionnez un cluster existant.
- Ajoutez des tâches.
- Instanciez le modèle pour exécuter le workflow.
Créer un modèle
Gcloud CLI
Exécutez le command suivant pour créer une ressource de modèle de workflow Dataproc.
gcloud dataproc workflow-templates create TEMPLATE_ID \ --region=REGION
Remarques :
- REGION : spécifiez la région dans laquelle votre modèle s'exécutera.
- TEMPLATE_ID : fournissez un ID pour votre modèle, par exemple "workflow-template-1".
- Chiffrement CMEK. Vous pouvez ajouter l'--kms-key pour utiliser le chiffrement CMEK sur les arguments de tâche du modèle de workflow.
API REST
Envoyez un WorkflowTemplate dans le cadre d'une workflowTemplates.create. Vous pouvez ajouter le WorkflowTemplate.EncryptionConfig.kmsKey pour utiliser le chiffrement CMEK sur les arguments de tâche du modèle de workflow. kmsKey
Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Configurer ou sélectionner un cluster
Dataproc peut soit créer et utiliser un nouveau cluster "géré" pour votre workflow, soit se servir d'un cluster existant.
Cluster existant : consultez la page Utiliser des sélecteurs de cluster avec des workflows pour découvrir comment sélectionner un cluster existant pour votre workflow.
Cluster géré : vous devez configurer un cluster géré pour votre workflow. Dataproc va créer ce cluster pour exécuter des tâches de workflow, puis le supprimer à la fin du workflow.
Vous pouvez configurer un cluster géré pour votre workflow à l'aide de l'outil de ligne de commande
gcloudou de l'API Dataproc.Google Cloud CLI
Utilisez les options héritées de gcloud dataproc cluster create pour configurer le cluster géré, par exemple le nombre de nœuds de calcul, ainsi que le type de machine du nœud maître et des nœuds de calcul. Dataproc ajoute un suffixe au nom du cluster pour garantir son unicité. Vous pouvez utiliser l'
--service-accountoption pour spécifier un compte de service de VM pour le cluster géré.gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \ --region=REGION \ --master-machine-type=MACHINE_TYPE \ --worker-machine-type=MACHINE_TYPE \ --num-workers=NUMBER \ --cluster-name=CLUSTER_NAME --service-account=SERVICE_ACCOUNT
API REST
Consultez la section WorkflowTemplatePlacement.ManagedCluster, que vous pouvez fournir dans le cadre d'un WorkflowTemplate complet envoyé avec une requête workflowTemplates.create ou workflowTemplates.update.
Vous pouvez utiliser le
GceClusterConfig.serviceAccountchamp pour spécifier un compte de service de VM pour le cluster géré.Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Ajouter des tâches à un modèle
Toutes les tâches sont exécutées simultanément, sauf si vous spécifiez une ou plusieurs dépendances de tâche. Celles-ci sont exprimées sous la forme d'une liste d'autres tâches qui doivent s'achever avant que la tâche finale puisse démarrer. Vous devez fournir un ID (step-id) pour chaque tâche. L'ID doit être unique dans le workflow, mais pas nécessairement à l'échelle globale.
Gcloud CLI
Utilisez le type de tâche et les indicateurs hérités de
gcloud dataproc jobs submit
pour définir la tâche à ajouter au modèle. Vous pouvez inclure de façon facultative l'option
‑‑start-after job-id of another workflow job
pour démarrer la tâche après la fin d'une ou de plusieurs autres tâches
dans le workflow.
Exemples :
Ajoutez la tâche Hadoop "foo" au modèle "my-workflow".
gcloud dataproc workflow-templates add-job hadoop \ --region=REGION \ --step-id=foo \ --workflow-template=my-workflow \ -- space separated job args
Ajoutez la tâche "bar" au modèle "my-workflow". Elle sera exécutée une fois la tâche du workflow "foo" achevée.
gcloud dataproc workflow-templates add-job JOB_TYPE \ --region=REGION \ --step-id=bar \ --start-after=foo \ --workflow-template=my-workflow \ -- space separated job args
Ajoutez une autre tâche "baz" au modèle "my-workflow". Elle sera exécutée une fois les tâches "foo" et "bar" terminées.
gcloud dataproc workflow-templates add-job JOB_TYPE \ --region=REGION \ --step-id=baz \ --start-after=foo,bar \ --workflow-template=my-workflow \ -- space separated job args
API REST
Consultez la section WorkflowTemplate.OrderedJob. Ce champ est fourni dans le cadre d'un WorkflowTemplatecomplet envoyé avec une requête workflowTemplates.create ou workflowTemplates.update.
Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Exécuter un workflow
Instancier un modèle de workflow permet d'exécuter un workflow défini par le modèle. Les instanciations multiples d'un même modèle sont acceptées : vous pouvez exécuter un workflow plusieurs fois.
Commande gcloud
gcloud dataproc workflow-templates instantiate TEMPLATE_ID \ --region=REGION
La commande renvoie un ID d'opération, que vous pouvez utiliser pour effectuer le suivi de l'état du workflow.
Exemple de commande et de sortie :gcloud beta dataproc workflow-templates instantiate my-template-id \ --region=us-central1 ... WorkflowTemplate [my-template-id] RUNNING ... Created cluster: my-template-id-rg544az7mpbfa. Job ID teragen-rg544az7mpbfa RUNNING Job ID teragen-rg544az7mpbfa COMPLETED Job ID terasort-rg544az7mpbfa RUNNING Job ID terasort-rg544az7mpbfa COMPLETED Job ID teravalidate-rg544az7mpbfa RUNNING Job ID teravalidate-rg544az7mpbfa COMPLETED ... Deleted cluster: my-template-id-rg544az7mpbfa. WorkflowTemplate [my-template-id] DONE
API REST
Consultez la page WorkflowTemplates.instantiate.Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Échec d'une tâche de workflow
L'échec d'une tâche dans un workflow entraîne l'échec de celui-ci. Dataproc cherchera à en limiter les conséquences en provoquant l'échec de toutes les tâches exécutées simultanément et en empêchant le démarrage de tâches ultérieures.
Surveiller et répertorier un workflow
Gcloud CLI
Pour surveiller un workflow :
gcloud dataproc operations describe OPERATION_ID \ --region=REGION
Remarque : L'ID "operation-id" est renvoyé lorsque vous instanciez le workflow
avec gcloud dataproc workflow-templates instantiate (consultez la section
Exécuter un workflow).
Pour obtenir l'état du workflow :
gcloud dataproc operations list \ --region=REGION \ --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"
API REST
Pour surveiller un workflow, utilisez l'API operations.get Dataproc.
Pour répertorier les workflows en cours, utilisez l'API operations.list Dataproc avec un filtre de libellé.
Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Supprimer un workflow
Vous pouvez mettre fin à un workflow à l'aide de la Google Cloud CLI ou en appelant l'API Dataproc.
Commande gcloud
gcloud dataproc operations cancel OPERATION_ID \ --region=REGION
gcloud dataproc workflow-templates instantiate (consultez la section
Exécuter un workflow).
API REST
Consultez l'API operations.cancel.
Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Mettre à jour un modèle de workflow
Les mises à jour n'affectent pas les workflows en cours d'exécution. La nouvelle version du modèle s'applique uniquement aux nouveaux workflows.
Gcloud CLI
Les modèles de workflow peuvent être mis à jour en émettant de nouvelles commandes gcloud workflow-templates
qui associent l'ID "template-id" d'un workflow existant :
API REST
Pour mettre à jour un modèle avec l'API REST, procédez comme suit :
- Appelez WorkflowTemplates.get qui affiche le modèle actuel avec le champ
versionrenseigné selon la version actuelle du serveur. - Apportez des modifications au modèle récupéré.
- Appelez WorkflowTemplates.update avec le modèle mis à jour.
Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud
Supprimer un modèle de workflow
Gcloud CLI
gcloud dataproc workflow-templates delete TEMPLATE_ID \ --region=REGION
Remarque : L'ID "operation-id" est renvoyé lorsque vous instanciez le workflow
avec gcloud dataproc workflow-templates instantiate (consultez la section
Exécuter un workflow).
API REST
Consultez la page workflowTemplates.delete.Console
Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page **Workflows** de Dataproc dans la console. Google Cloud