Puoi definire un modello di workflow in un file YAML, quindi creare un'istanza del modello per eseguire il workflow. Puoi anche importare ed esportare un file YAML del modello di workflow per creare e aggiornare una risorsa del modello di workflow di Managed Service for Apache Spark.
Esegui un workflow utilizzando un file YAML
Per eseguire un workflow senza creare prima una risorsa del template di workflow, utilizza il comando gcloud dataproc workflow-templates instantiate-from-file.
- Definisci il modello di workflow in un file YAML. Il file YAML deve includere tutti i campi WorkflowTemplate obbligatori, ad eccezione del campo
id, e deve escludere anche il campoversione tutti i campi di solo output. Nell'esempio di workflow seguente, l'elencoprerequisiteStepIdsnel passaggioterasortgarantisce che il passaggioterasortinizi solo dopo che il passaggioteragenè 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 workflow:
gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Crea un'istanza di un workflow utilizzando un file YAML con il posizionamento automatico della zona di Managed Service for Apache Spark
- Definisci il modello di workflow in un file YAML. Questo file YAML è uguale al file YAML precedente, ad eccezione del campo
zoneUri, che è impostato sulla stringa vuota ('') per consentire al posizionamento automatico della zona di Managed Service for Apache Spark 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 workflow. Quando utilizzi il posizionamento automatico, devi passare una regione al comando
gcloud.gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Importa ed esporta un file YAML del modello di workflow
Puoi importare ed esportare i file YAML dei modelli di workflow. In genere, un modello di workflow 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 template del workflow in un file YAML. Durante l'operazione di esportazione, i campi
ideversione tutti i campi di solo output vengono filtrati dall'output e non vengono visualizzati nel file YAML esportato. Al comando puoi passare WorkflowTemplategcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
ido la risorsa del template con nome completoname("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID").Modifica il file YAML localmente. Tieni presente che i campi
id,versione di solo output, che sono stati filtrati dal file YAML durante l'esportazione del template, non sono consentiti nel file YAML importato.Importa il file YAML del modello di workflow aggiornato:
Al comando puoi passare WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
ido la risorsa del template con nome completoname("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID"). La risorsa del template con lo stesso nome verrà sovrascritta (aggiornata) e il numero di versione verrà incrementato. Se non esiste un template con lo stesso nome, ne verrà creato uno.