Utilizza i file YAML con i flussi di lavoro

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.

  1. 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 campo version e tutti i campi solo per l'output. Nel seguente esempio di flusso di lavoro, l'elenco prerequisiteStepIds il passaggio terasort garantisce che terasort inizierà solo al termine del passaggio teragen 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
    
  2. Esegui il flusso di lavoro:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Esegui l'istanza di un flusso di lavoro utilizzando un file YAML con il posizionamento in una zona automatica di Dataproc

  1. 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: ''
    
  2. 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
    

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 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.

  1. Esportare il modello di flusso di lavoro in un file YAML. Durante l'operazione di esportazione, i campi id e version e tutti i campi di solo output vengono filtrati dall'output e non vengono visualizzati YAML esportato.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    Puoi passare il token WorkflowTemplate id o la risorsa modello completa name ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") al comando.

  2. Modifica il file YAML in locale. 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.

  3. 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 al comando il valore WorkflowTemplate id o la risorsa modello completa name ("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 un modello con lo stesso modello nome inesistente, verrà creato.