YAML-Dateien mit Workflows verwenden

Sie können eine Workflow-Vorlage in einer YAML-Datei definieren und dann die Vorlage zur Ausführung des Workflows instanziieren. Sie können auch eine YAML-Datei der Workflow-Vorlage importieren und exportieren, um eine Dataproc-Workflow-Vorlagenressource zu erstellen und zu aktualisieren.

Workflow mit einer YAML-Datei ausführen

Verwenden Sie zum Ausführen eines Workflows, ohne zuerst eine Workflow-Vorlagenressource zu erstellen, den Befehl gcloud dataproc workflow-templates instantiate-from-file.

  1. Definieren Sie Ihre Workflow-Vorlage in einer YAML-Datei. Die YAML-Datei muss alle erforderlichen WorkflowTemplate-Felder außer das Feld id enthalten. Sie darf außerdem nicht das Feld version oder nur zur Ausgabe zulässige Felder enthalten. Im folgenden Workflow-Beispiel gewährleistet die prerequisiteStepIds-Liste in Schritt terasort, dass Schritt terasort nur dann beginnt, wenn Schritt teragen erfolgreich abgeschlossen wurde.
    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. Workflow ausführen:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Workflow mithilfe einer YAML-Datei mit automatischer Zonenplatzierung von Dataproc instantiieren

  1. Definieren Sie Ihre Workflow-Vorlage in einer YAML-Datei. Diese YAML-Datei ist die gleiche wie die vorherige YAML-Datei, außer dass das Feld zoneUri auf den leeren String ('') gesetzt ist, damit die automatische Zonenplatzierung von Dataproc die Zone für den Cluster auswählen kann.
    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. Führen Sie den Workflow aus. Wenn Sie die automatische Platzierung verwenden, müssen Sie eine Region an den Befehl gcloud übergeben.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

YAML-Datei für Workflow-Vorlagen importieren und exportieren

Sie können YAML-Dateien für Workflow-Vorlagen importieren und exportieren. Üblicherweise wird eine Workflow-Vorlage zuerst als YAML-Datei exportiert. Dann wird die YAML-Datei bearbeitet und anschließend importiert, um die Vorlage zu aktualisieren.

  1. Exportieren Sie die Workflow-Vorlage in eine YAML-Datei. Während des Exports werden die Felder id und version sowie alle nur zur Ausgabe zulässigen Felder aus der Ausgabe herausgefiltert und sind nicht in der exportierten YAML-Datei sichtbar.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    Sie können entweder die WorkflowTemplate id oder die vollständig qualifizierte Vorlagenressource name ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") an den Befehl übergeben.

  2. YAML-Datei lokal bearbeiten Beachten Sie, dass die Felder id, version und das nur zur Ausgabe zulässige Feld, die beim Exportieren der Vorlage aus der YAML-Datei herausgefiltert wurden, in der importierten YAML-Datei nicht zulässig sind.

  3. Importieren Sie die YAML-Datei der aktualisierten Workflow-Vorlage:

    gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \
        --source=TEMPLATE_YAML \
        --region=REGION
    
    Sie können entweder die WorkflowTemplate id oder die vollständig qualifizierte Vorlagenressource name ("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID") an den Befehl übergeben. Die Vorlagenressource mit demselben Vorlagennamen wird überschrieben bzw. aktualisiert und die Versionsnummer wird erhöht. Wenn keine Vorlage mit demselben Vorlagennamen vorhanden ist, wird sie erstellt.