Usa archivos YAML con flujos de trabajo

Puedes definir una plantilla de flujo de trabajo en un archivo YAML y, luego, crear una instancia de la plantilla para ejecutar el flujo de trabajo. También puedes importar y exportar un archivo YAML de plantilla de flujo de trabajo para crear y actualizar un recurso de plantilla de flujo de trabajo de Dataproc.

Ejecuta un flujo de trabajo mediante un archivo YAML

Para ejecutar un flujo de trabajo sin crear primero un recurso de plantilla de flujo de trabajo, usa el comando gcloud dataproc workflow-templates instantiate-from-file.

  1. Define la plantilla de flujo de trabajo en un archivo YAML. El archivo YAML debe incluir todos los campos obligatorios de WorkflowTemplate, excepto el campo id, y también debe excluir el campo version y todos los campos solo de salida. En el siguiente ejemplo de flujo de trabajo, la lista prerequisiteStepIds en el paso terasort garantiza que el paso terasort solo comience después de que el paso teragen se complete correctamente.
    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. Ejecuta el flujo de trabajo como se indica a continuación:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Crea una instancia de un flujo de trabajo con un archivo YAML con la función de posición de zona automática de Dataproc

  1. Define la plantilla de flujo de trabajo en un archivo YAML. Este archivo YAML es igual que el anterior, excepto que el campo zoneUri se estableció en la string vacía ('') a fin de permitir que la posición de zona automática de Dataproc seleccione la zona para el clúster.
    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. Ejecuta el flujo de trabajo. Cuando utilices la posición automática, debes pasar una región al comando gcloud.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Importa y exporta un archivo YAML de plantilla de flujo de trabajo

Puedes importar y exportar archivos YAML de plantilla de flujo de trabajo. Por lo general, una plantilla de flujo de trabajo se exporta primero como un archivo YAML; luego se edita y se importa para actualizar la plantilla.

  1. Exporta la plantilla de flujo de trabajo a un archivo YAML. Durante la operación de exportación, los campos id y version, además de todos los campos solo de salida, se filtran del resultado y no aparecen en el archivo YAML exportado.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    Puedes pasar el id de WorkflowTemplate o el name del recurso de plantilla completamente calificado ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") al comando.

  2. Edita el archivo YAML de forma local. Ten en cuenta que los campos id y version, además de los campos solo de salida, que se filtraron del archivo YAML cuando se exportó la plantilla, no se permiten en el archivo YAML importado.

  3. Importa la plantilla de flujo de trabajo actualizada al archivo YAML:

    gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \
        --source=TEMPLATE_YAML \
        --region=REGION
    
    Puedes pasar cualquiera WorkflowTemplate id o el recurso de plantilla completamente calificado name ("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID") al comando. Se reemplazará (actualizará) el recurso de plantilla con el mismo nombre y se aumentará el número de la versión. Si no existe una plantilla con el mismo nombre, esta se creará.