Usar archivos YAML con flujos de trabajo

Puedes definir una plantilla de flujo de trabajo en un archivo YAML y, a continuación, 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.

Ejecutar un flujo de trabajo con 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 tu plantilla de flujo de trabajo en un archivo YAML. El archivo YAML debe incluir todos los campos WorkflowTemplate obligatorios, excepto el campo id, y también debe excluir el campo version y todos los campos de solo salida. En el siguiente ejemplo de flujo de trabajo, la lista prerequisiteStepIds del paso terasort asegura que este paso solo se inicie después de que el paso teragen se complete correctamente.terasort
    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:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Instanciar un flujo de trabajo mediante un archivo YAML con la colocación automática de zonas de Dataproc

  1. Define tu plantilla de flujo de trabajo en un archivo YAML. Este archivo YAML es el mismo que el anterior, excepto que el campo zoneUri se ha definido como una cadena vacía ('') para permitir que Colocación automática de zonas de Dataproc seleccione la zona del 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 se usa la colocación automática, se debe pasar una región al comando gcloud.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Importar y exportar un archivo YAML de plantilla de flujo de trabajo

Puedes importar y exportar archivos YAML de plantillas de flujo de trabajo. Normalmente, una plantilla de flujo de trabajo se exporta primero como archivo YAML, luego se edita el archivo YAML y, por último, se importa el archivo YAML editado 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, así como todos los campos de solo salida, se filtran de la salida 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 recurso WorkflowTemplate id o el recurso de plantilla completo name ("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, version y de solo 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 Archivo YAML:

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