Você pode definir um modelo de fluxo de trabalho em um arquivo YAML e instanciar o modelo para executar o fluxo de trabalho. Também é possível importar e exportar um arquivo YAML de um modelo de fluxo de trabalho para criar e atualizar um recurso de modelo de fluxo de trabalho do Dataproc.
Executar um fluxo de trabalho usando um arquivo YAML
Para executar um fluxo de trabalho sem primeiro criar um recurso de modelo de fluxo de trabalho, use o comando gcloud dataproc workflow-templates instantiate-from-file.
- Defina seu modelo de fluxo de trabalho em um arquivo YAML. O arquivo YAML deve incluir todos os campos WorkflowTemplate obrigatórios, exceto o campo
id
, e também deve excluir o campoversion
e todos os campos apenas de saída. No exemplo de fluxo de trabalho a seguir, a listaprerequisiteStepIds
na etapaterasort
garante que a etapaterasort
só começará após ateragen
concluída com êxito.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
- Executar o fluxo de trabalho:
gcloud dataproc workflow-templates instantiate-from-file \ --file=your-template.yaml \ --region=region
Instanciar um fluxo de trabalho usando um arquivo YAML com a veiculação de zona automática do Dataproc
- Defina seu modelo de fluxo de trabalho em um arquivo YAML. Este arquivo YAML é o mesmo que o arquivo YAML anterior, exceto o
zoneUri
é definido como a string vazia ('') para permitir que o Dataproc Posicionamento automático de zona para selecionar a zona do 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: ''
- Executar o fluxo de trabalho. Ao usar a Colocação automática, passe uma região não global para o comando
gcloud
.gcloud dataproc workflow-templates instantiate-from-file \ --file=your-template.yaml \ --region=region
Importar e exportar um arquivo YAML do modelo de fluxo de trabalho
É possível importar e exportar arquivos YAML do modelo de fluxo de trabalho. Normalmente, um modelo de fluxo de trabalho é primeiro exportado como um arquivo YAML, que é editado e, em seguida, importado para atualizar o modelo.
Exporte o modelo de fluxo de trabalho para um arquivo YAML. Durante a operação de exportação, os campos
id
eversion
e todos os campos somente saída são filtrados da saída e não aparecem no arquivo YAML exportado.gcloud dataproc workflow-templates export template-id or template-name \ --destination=template.yaml \ --region=region
Você pode passar o WorkflowTemplateid
ou o recurso de modelo totalmente qualificadoname
("projects/projectId/region/region/workflowTemplates/template_id") ao comando.Edite o arquivo YAML localmente. Observe que os campos
id
,version
e somente saída, que foram filtrados do arquivo YAML quando o modelo foi exportado, não são permitidos no arquivo YAML importado.Importe o arquivo YAML do modelo de fluxo de trabalho atualizado:
gcloud dataproc workflow-templates import template-id or template-name \ --source=template.yaml \ --region=region
Você pode passar o WorkflowTemplateid
ou o recurso de modelo totalmente qualificadoname
("projects/projectId/region/region/workflowTemplates/template_id") ao comando. O recurso de modelo com o mesmo nome será substituído, e o número de versão será incrementado. Se não existirem dois modelos com o mesmo nome, um modelo será criado.