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.
- 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 campoversion
y todos los campos de solo salida. En el siguiente ejemplo de flujo de trabajo, la listaprerequisiteStepIds
del pasoterasort
asegura que este paso solo se inicie después de que el pasoteragen
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
- 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
- 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: ''
- 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.
Exporta la plantilla de flujo de trabajo a un archivo YAML. Durante la operación de exportación, los campos
id
yversion
, así como todos los campos de solo salida, se filtran de la salida y no aparecen en el archivo YAML exportado. Puedes pasar el recurso WorkflowTemplategcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id
o el recurso de plantilla completoname
("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") al comando.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.Importa la plantilla de flujo de trabajo actualizada Archivo YAML:
Puedes pasar el recurso WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id
o el recurso de plantilla completoname
("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á.