Utiliser des workflows

Pour configurer et exécuter un workflow, procédez comme suit :

  1. Créez un modèle de workflow.
  2. Configurez un cluster géré (éphémère) ou sélectionnez un cluster existant.
  3. Ajoutez des tâches.
  4. Instanciez le modèle pour exécuter le workflow.

Créer un modèle

Commande gcloud

Exécutez la commande command suivante pour créer une ressource de modèle de workflow Dataproc.

gcloud dataproc workflow-templates create template-id (such as "my-workflow") \
    --region=region

API REST

Consultez la page WorkflowTemplates.create. Un WorkflowTemplate complet est envoyé avec une requête WorkflowTemplates.create.

Console

Vous pouvez afficher les modèles de workflow existants et instanciés depuis la page Workflows de Dataproc dans Google Cloud Console.

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 gcloud ou de l'API Dataproc.

    Commande gcloud

    Utilisez les indicateurs hérités de gcloud dataproc cluster create pour configurer le cluster géré (nombre de nœuds de calcul, type de machine maître/de calcul, etc.). Dataproc ajoute un suffixe au nom du cluster pour garantir son unicité.

    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
    

    API REST

    Consultez la section WorkflowTemplatePlacement.ManagedCluster. Ce champ est fourni dans le cadre d'un WorkflowTemplate complet envoyé avec une requête WorkflowTemplates.create ou WorkflowTemplates.update.

    Console

    Vous pouvez afficher les modèles de workflow et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

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.

Commande gcloud

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 WorkflowTemplate complet envoyé avec une requête WorkflowTemplates.create ou WorkflowTemplates.update.

Console

Vous pouvez afficher les modèles de workflow et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

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 :
gcloud beta dataproc workflow-templates instantiate my-template-id \
    --region=region
...
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 et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

É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

Commande gcloud

Pour surveiller un workflow :

gcloud dataproc operations describe operation-id \
    --region=region

Remarque : L'opération-id est renvoyée lorsque vous instanciez un 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 et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

Supprimer un workflow

Vous pouvez arrêter un workflow à l'aide de Google Cloud CLI ou en appelant l'API Dataproc.

Commande gcloud

gcloud dataproc operations cancel 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).

API REST

Reportez-vous à l'API operations.cancel.

Console

Vous pouvez afficher les modèles de workflow et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

Mettre à jour un modèle de workflow

Les mises à jour n'ont pas d'effet sur les workflows en cours d'exécution. La nouvelle version du modèle s'applique uniquement aux nouveaux workflows.

Commande gcloud

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 :

à un modèle de workflow existant.

API REST

Pour mettre à jour un modèle avec l'API REST, procédez comme suit :

  1. Appelez WorkflowTemplates.get qui affiche le modèle actuel avec le champ version renseigné selon la version actuelle du serveur.
  2. Apportez des modifications au modèle récupéré.
  3. Appelez WorkflowTemplates.update avec le modèle mis à jour.

Console

Vous pouvez afficher les modèles de workflow et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.

Supprimer un modèle de workflow

Commande gcloud

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 et les workflows instanciés existants depuis la page Workflows de Dataproc dans Google Cloud Console.