Pode definir um modelo de fluxo de trabalho num ficheiro YAML e, em seguida, instanciar o modelo para executar o fluxo de trabalho. Também pode importar e exportar um ficheiro YAML de modelo de fluxo de trabalho para criar e atualizar um recurso de modelo de fluxo de trabalho do Dataproc.
Execute um fluxo de trabalho com um ficheiro YAML
Para executar um fluxo de trabalho sem criar primeiro um recurso de modelo de fluxo de trabalho, use o comando gcloud dataproc workflow-templates instantiate-from-file.
- Defina o modelo do fluxo de trabalho num ficheiro YAML. O ficheiro YAML tem de incluir todos os campos WorkflowTemplate
obrigatórios, exceto o campo
id
, e também tem de excluir o campoversion
e todos os campos apenas de saída. No exemplo do fluxo de trabalho seguinte, a listaprerequisiteStepIds
no passoterasort
garante que o passoterasort
só começa depois de o passoteragen
ser concluído 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
- Execute o fluxo de trabalho:
gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Instancie um fluxo de trabalho usando um ficheiro YAML com o posicionamento automático de zonas do Dataproc
- Defina o modelo do fluxo de trabalho num ficheiro YAML. Este ficheiro YAML é igual ao ficheiro YAML anterior, exceto que o campo
zoneUri
está definido como a string vazia ("") para permitir que o Dataproc Auto Zone Placement selecione a zona para o 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: ''
- Execute o fluxo de trabalho. Quando usar o posicionamento automático, tem de transmitir uma
região
para o comando
gcloud
.gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Importe e exporte um ficheiro YAML de modelo de fluxo de trabalho
Pode importar e exportar ficheiros YAML de modelos de fluxo de trabalho. Normalmente, um modelo de fluxo de trabalho é primeiro exportado como um ficheiro YAML. Em seguida, o YAML é editado e, por fim, o ficheiro YAML editado é importado para atualizar o modelo.
Exporte o modelo de fluxo de trabalho para um ficheiro YAML. Durante a operação de exportação, os campos
id
eversion
, e todos os campos só de saída, são filtrados da saída e não aparecem no ficheiro YAML exportado. Pode transmitir o WorkflowTemplategcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id
ou o recurso de modelo totalmente qualificadoname
("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") para o comando.Edite o ficheiro YAML localmente. Tenha em atenção que os campos
id
,version
e apenas de saída, que foram filtrados do ficheiro YAML quando o modelo foi exportado, não são permitidos no ficheiro YAML importado.Importe o ficheiro YAML do modelo de fluxo de trabalho atualizado:
Pode transmitir o WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id
ou o recurso de modelo totalmente qualificadoname
("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID") para o comando. O recurso de modelo com o mesmo nome de modelo é substituído (atualizado) e o respetivo número de versão é incrementado. Se não existir um modelo com o mesmo nome do modelo, este é criado.