Vous pouvez définir un modèle de workflow dans un fichier YAML, puis instancier le modèle pour exécuter ce workflow. Vous pouvez également importer et exporter un fichier YAML de modèle de workflow pour créer et mettre à jour une ressource de modèle de workflow Dataproc.
Exécuter un workflow à l'aide d'un fichier YAML
Pour exécuter un workflow sans créer de ressource de modèle au préalable, exécutez la commande gcloud dataproc workflow-templates instantiate-from-file.
- Définissez votre modèle de workflow dans un fichier YAML. Celui-ci doit inclure tous les champs WorkflowTemplate obligatoires, à l'exception du champ
id
, et doit également exclure le champversion
et tous les champs exclusivement de sortie. Dans l'exemple de workflow suivant, la listeprerequisiteStepIds
de l'étapeterasort
garantit que l'étapeterasort
ne débute qu'une fois l'étapeteragen
terminée.jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: us-central1-a
- Exécutez le workflow comme suit :
gcloud dataproc workflow-templates instantiate-from-file \ --file=your-template.yaml \ --region=region
Instancier un workflow à l'aide d'un fichier YAML avec la sélection de zone automatique de Dataproc
- Définissez votre modèle de workflow dans un fichier YAML. Ce fichier YAML est identique au fichier YAML précédent, si ce n'est que le champ
zoneUri
est défini sur une chaîne vide ('') pour permettre à la fonctionnalité de sélection de zone automatique de Dataproc de sélectionner la zone du cluster.jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: ''
- Exécutez le workflow. Lorsque vous utilisez la sélection de zone automatique, vous devez transmettre une région non globale à la commande
gcloud
.gcloud dataproc workflow-templates instantiate-from-file \ --file=your-template.yaml \ --region=region
Importer et exporter un fichier YAML de modèle de workflow
Vous pouvez importer et exporter des fichiers YAML de modèles de workflow. Généralement, un modèle de workflow est d'abord exporté sous forme de fichier YAML. Ce fichier est ensuite modifié, puis importé pour mettre à jour le modèle de workflow.
Exportez le modèle de workflow dans un fichier YAML. Au cours de l'opération d'exportation, les champs
id
etversion
, ainsi que tous les champs exclusivement de sortie, sont filtrés de la sortie et n'apparaissent pas dans le fichier YAML exporté.gcloud dataproc workflow-templates export template-id or template-name \ --destination=template.yaml \ --region=region
Vous pouvez transmettre le modèle de workflowid
ou la ressource de modèle completname
("projects/projectId/régions/region/workflowTemplates/template_id"). ) à la commande.Modifiez le fichier YAML en local. Notez que les champs
id
,version
et les champs exclusivement de sortie, filtrés du fichier YAML lors de l'exportation du modèle, ne sont pas autorisés dans le fichier YAML importé.Importez le fichier YAML de modèle de workflow mis à jour, comme suit :
gcloud dataproc workflow-templates import template-id or template-name \ --source=template.yaml \ --region=region
Vous pouvez transmettre le modèle de workflowid
ou la ressource de modèle completname
("projects/projectId/régions/region/workflowTemplates/template_id"). ) à la commande. Le modèle de ressource portant le même nom de modèle est écrasé (mis à jour), et son numéro de version est incrémenté. S'il n'existe aucun modèle portant un nom identique, un nouveau modèle est créé.