Puoi definire un modello di flusso di lavoro in un file YAML, quindi creare un'istanza del modello per eseguire il flusso di lavoro. Puoi anche importare ed esportare un file YAML di modello di flusso di lavoro per creare e aggiornare una risorsa del modello di flusso di lavoro Dataproc.
Esegui un flusso di lavoro utilizzando un file YAML
Per eseguire un flusso di lavoro senza prima creare una risorsa modello di flusso di lavoro, utilizza il comando gcloud dataproc flusso di lavoro-templates istantaneoiate-from-file.
- Definisci il tuo modello di flusso di lavoro in un file YAML. Il file YAML deve includere tutti i campi obbligatori WorkflowTemplate tranne il campo
id
, inoltre deve escludere il campoversion
e tutti i campi solo di output. Nel seguente esempio di flusso di lavoro, l'elencoprerequisiteStepIds
nel passaggioterasort
garantisce che il passaggioterasort
inizierà solo dopo che il passaggioteragen
sarà stato completato correttamente.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
- Esegui il flusso di lavoro:
gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Crea l'istanza di un flusso di lavoro utilizzando un file YAML con posizionamento automatico della zona Dataproc
- Definisci il tuo modello di flusso di lavoro in un file YAML. Questo file YAML è uguale al
file YAML precedente, ad eccezione del fatto che il campo
zoneUri
è impostato sulla stringa vuota ('') per consentire al posizionamento automatico della zona di Dataproc di selezionare la zona per il 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: ''
- Esegui il flusso di lavoro. Quando utilizzi il posizionamento automatico, devi passare un'area geografica al comando
gcloud
.gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Importa ed esporta un file YAML di un modello di flusso di lavoro
Puoi importare ed esportare file YAML dei modelli di flusso di lavoro. In genere, un modello di flusso di lavoro viene prima esportato come file YAML, poi il file YAML viene modificato e poi il file YAML modificato viene importato per aggiornare il modello.
Esporta il modello del flusso di lavoro in un file YAML. Durante l'operazione di esportazione, i campi
id
eversion
e tutti i campi solo di output vengono filtrati dall'output e non vengono visualizzati nel file YAML esportato.gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
Puoi passare WorkflowTemplateid
o la risorsa del modello completoname
("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") al comando.Modifica il file YAML in locale. Tieni presente che i campi
id
,version
e solo di output, filtrati dal file YAML quando è stato esportato il modello, non sono consentiti nel file YAML importato.Importa il modello di flusso di lavoro aggiornato File YAML:
gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
Puoi passare WorkflowTemplateid
o la risorsa del modello completoname
("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID") al comando. La risorsa del modello con lo stesso nome di modello verrà sovrascritta (aggiornata) e il numero di versione verrà incrementato. Se non esiste un modello con lo stesso nome, verrà creato.