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 modello YAML di un 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 la gcloud dataproc workflow-templates instanceiate-from-file .
- Definisci il modello di flusso di lavoro in un file YAML. Il file YAML deve includere tutte
obbligatorio
WorkflowTemplate
tranne il campo
id
e deve anche escludere il campoversion
e tutti i campi di solo output. Nel seguente esempio di flusso di lavoro, l'elencoprerequisiteStepIds
nel passaggioterasort
garantisce che il passaggioterasort
inizi solo dopo il completamento positivo del passaggioteragen
.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
Creare un'istanza di un flusso di lavoro utilizzando un file YAML con posizionamento automatico della zona Dataproc
- Definisci il 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 a Dataproc Posizionamento automatico della zona per 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 trasmettere una
region [regione]
al comando
gcloud
.gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Importare ed esportare un file YAML del modello di flusso di lavoro
Puoi importare ed esportare file YAML dei modelli di flusso di lavoro. In genere, un flusso di lavoro il modello YAML viene prima esportato come file YAML, quindi il file YAML viene modificato viene importato il file YAML modificato per aggiornare il modello.
Esportare il modello di 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. Puoi passare al comando il valore WorkflowTemplategcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id
o la risorsa modello completaname
("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID").Modifica il file YAML in locale. Tieni presente che
id
,version
, e solo di output, che venivano filtrati dal file YAML al momento dell'esportazione del modello, non sono consentiti nel del file YAML importato.Importa il modello di flusso di lavoro aggiornato file YAML:
Puoi passare il token WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id
o la risorsa modello completaname
("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 relativo numero di versione verrà incrementato. Se un modello con lo stesso modello nome inesistente, verrà creato.