Utilizzo di file YAML con flussi di lavoro

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 modello di flusso di lavoro per creare e aggiornare una risorsa modello di flusso di lavoro Dataproc.

Esecuzione di 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 dataprocflow-templates Instantiate-from-file.

  1. 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 e deve anche escludere i campi version e tutti i campi di solo output. Nel seguente esempio di flusso di lavoro, l'elenco prerequisiteStepIds nel passaggio terasort garantisce che il passaggio terasort inizia solo dopo che il passaggio teragen è 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
    
  2. Esegui il flusso di lavoro:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=your-template.yaml \
        --region=region
    

Creare un'istanza di un flusso di lavoro utilizzando un file YAML con posizionamento automatico di Dataproc

  1. Definisci il tuo modello di flusso di lavoro in un file YAML. Questo file YAML è lo stesso del file YAML precedente, tranne per il fatto che il campo zoneUri è impostato sulla stringa vuota ('') per consentire a Dataproc con il posizionamento automatico della zona 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: ''
    
  2. Esegui il flusso di lavoro. Quando utilizzi il posizionamento automatico, devi passare un'area geografica non globale al comando gcloud.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=your-template.yaml \
        --region=region
    

Importare ed esportare un file YAML modello di flusso di lavoro

Puoi importare ed esportare file YAML modello di flusso di lavoro. In genere, un modello di flusso di lavoro viene esportato prima come file YAML, quindi su YAML viene modificato il file YAML e infine viene importato il file YAML per aggiornare il modello.

  1. Esporta il modello del 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 nel file YAML esportato.

    gcloud dataproc workflow-templates export template-id or template-name \
        --destination=template.yaml \
        --region=region
    
    Puoi trasferire al comando il WorkflowTemplateid o la risorsa completa del modello name("projects/projectId/regions/region/workflowTemplates/template_id").

  2. Modifica il file YAML localmente. Tieni presente che i campi id, version e solo output, che sono stati filtrati dal file YAML quando il modello è stato esportato, 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 trasferire al comando il WorkflowTemplateid o la risorsa completa del modello name("projects/projectId/regions/region/workflowTemplates/template_id"). La risorsa modello con lo stesso nome modello verrà sovrascritta (aggiornata) e il numero di versione verrà incrementato. Se non esiste un modello con lo stesso nome del modello, verrà creato.