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 Workflow-Vorlagenressource für Managed Service for Apache Spark 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 Managed Service for Apache Spark instanziieren

  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 Managed Service for Apache Spark Auto Zone Placement 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 gcloud Befehl ü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 voll 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 voll 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.