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.
- 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 campoversion
y todos los campos solo de salida. En el siguiente ejemplo de flujo de trabajo, la listaprerequisiteStepIds
en el pasoterasort
garantiza que el pasoterasort
solo comience después de que el pasoteragen
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
- 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
- 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: ''
- 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.
Exporta la plantilla de flujo de trabajo a un archivo YAML. Durante la operación de exportación, los campos
id
yversion
, además de todos los campos solo de salida, se filtran del resultado y no aparecen en el archivo YAML exportado. Puedes pasar elgcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id
de WorkflowTemplate o elname
del recurso de plantilla completamente calificado ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") al comando.Edita el archivo YAML de forma local. Ten en cuenta que los campos
id
yversion
, 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.Importa la plantilla de flujo de trabajo actualizada al archivo YAML:
Puedes pasar cualquiera WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id
o el recurso de plantilla completamente calificadoname
("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á.