Puoi definire un modello di flusso di lavoro in un file YAML, quindi eseguirlo. Puoi anche importare ed esportare un file YAML del 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 creare prima una risorsa modello di flusso di lavoro, utilizza il comando gcloud dataproc workflow-templates instantiate-from-file.
- Definisci il modello di flusso di lavoro in un file YAML. Il file YAML deve includere tutti i campi obbligatori di WorkflowTemplate, ad eccezione del campo
id
, nonché escludere il campoversion
e tutti i campi solo per l'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
Esegui l'inizializzazione di un flusso di lavoro utilizzando un file YAML con il posizionamento in una zona automatica di Dataproc
- Definisci il modello di flusso di lavoro in un file YAML. Questo file YAML è uguale al
file YAML precedente, tranne per il fatto che il campo
zoneUri
è impostato sulla stringa vuota ("'") per consentire a Dataproc di selezionare la zona per il cluster tramite il posizionamento automatico in base alla zona.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 valore region 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 modello di flusso di lavoro viene prima esportato come file YAML, poi il file YAML viene modificato e infine il file YAML modificato viene importato per aggiornare il modello.
Esporta 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 localmente. Tieni presente che i campi
id
,version
e solo output, che sono stati filtrati dal file YAML durante l'esportazione del modello, non sono consentiti nel file YAML importato.Importa il modello di flusso di lavoro aggiornato file YAML:
Puoi passare al comando il valore 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"). La risorsa modello con lo stesso nome verrà sovrascritta (aggiornata) e il relativo numero di versione verrà incrementato. Se non esiste un modello con lo stesso nome, verrà creato.