Use ficheiros YAML com fluxos de trabalho

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.

  1. 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 campo version e todos os campos apenas de saída. No exemplo do fluxo de trabalho seguinte, a lista prerequisiteStepIds no passo terasort garante que o passo terasort só começa depois de o passo teragen 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
    
  2. 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

  1. 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: ''
    
  2. 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.

  1. Exporte o modelo de fluxo de trabalho para um ficheiro YAML. Durante a operação de exportação, os campos id e version, e todos os campos só de saída, são filtrados da saída e não aparecem no ficheiro YAML exportado.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    Pode transmitir o WorkflowTemplate id ou o recurso de modelo totalmente qualificado name ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") para o comando.

  2. 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.

  3. Importe o ficheiro YAML do modelo de fluxo de trabalho atualizado:

    gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \
        --source=TEMPLATE_YAML \
        --region=REGION
    
    Pode transmitir o WorkflowTemplate id ou o recurso de modelo totalmente qualificado name ("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.