Workflows verwenden

So richten Sie einen Workflow ein und führen ihn aus:

  1. Erstellen Sie eine Workflow-Vorlage.
  2. Konfigurieren Sie einen verwalteten (sitzungsspezifischen) Cluster oder wählen Sie einen vorhandenen Cluster aus.
  3. Fügen Sie Jobs hinzu.
  4. Instanziieren Sie die Vorlage zum Ausführen des Workflows.

Vorlage erstellen

gcloud CLI

Führen Sie den folgenden command aus, um eine Managed Service for Apache Spark-Workflow-Vorlagenressource zu erstellen.

gcloud dataproc workflow-templates create TEMPLATE_ID \
    --region=REGION

Hinweise:

  • REGION: Geben Sie die Region an, in der Ihre Vorlage ausgeführt wird.
  • TEMPLATE_ID: Geben Sie eine ID für Ihre Vorlage an, z. B. „workflow-template-1“.
  • CMEK-Verschlüsselung. Sie können das --kms-key Flag hinzufügen, um die CMEK-Verschlüsselung für Jobargumente von Workflow-Vorlagen zu verwenden.

REST API

Senden Sie eine WorkflowTemplate als Teil einer workflowTemplates.create Anfrage. Sie können das WorkflowTemplate.EncryptionConfig.kmsKey hinzufügen, um die CMEK-Verschlüsselung für Jobargumente von Workflow-Vorlagen zu verwenden. kmsKey

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in Google Cloud der Console aufrufen.

Cluster konfigurieren oder auswählen

Managed Service for Apache Spark kann einen neuen „verwalteten“ Cluster für Ihren Workflow erstellen und verwenden oder einen vorhandenen Cluster nutzen.

  • Vorhandener Cluster: Siehe Clusterselektoren mit Workflows verwenden , um einen vorhandenen Cluster für Ihren Workflow auszuwählen.

  • Verwalteter Cluster:Sie müssen einen verwalteten Cluster für Ihren Workflow konfigurieren. Managed Service for Apache Spark erstellt diesen neuen Cluster, um Workflow-Jobs auszuführen, und löscht den Cluster am Ende des Workflows.

    Sie können einen verwalteten Cluster für Ihren Workflow mit dem gcloud-Befehlszeilentool oder der Dataproc API konfigurieren.

    Google Cloud CLI

    Verwenden Sie Flags aus gcloud dataproc cluster create, um den verwalteten Cluster zu konfigurieren, z. B. die Anzahl der Worker und den Master- und Worker-Maschinentyp. Damit der Clustername eindeutig ist, fügt Managed Service for Apache Spark diesem ein Suffix hinzu. Mit dem --service-account Flag können Sie ein VM-Dienstkonto für den verwalteten Cluster angeben.

    gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \
        --region=REGION \
        --master-machine-type=MACHINE_TYPE \
        --worker-machine-type=MACHINE_TYPE \
        --num-workers=NUMBER \
        --cluster-name=CLUSTER_NAME
        --service-account=SERVICE_ACCOUNT
    

    REST API

    Informationen finden Sie unter WorkflowTemplatePlacement.ManagedCluster. Sie können dies als Teil einer abgeschlossenen WorkflowTemplate angeben, die mit einer workflowTemplates.create oder workflowTemplates.update Anfrage gesendet wird.

    Mit dem GceClusterConfig.serviceAccount Feld können Sie ein VM-Dienstkonto für den verwalteten Cluster angeben.

    Console

    Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Jobs zu einer Vorlage hinzufügen

Alle Jobs werden gleichzeitig ausgeführt, es sei denn, Sie geben eine oder mehrere Jobabhängigkeiten an. Die Abhängigkeiten eines Jobs werden als eine Liste anderer Jobs ausgedrückt, die erfolgreich abgeschlossen sein müssen, bevor der letzte Job gestartet werden kann. Sie müssen für jeden Job eine step-id angeben. Innerhalb des Workflows muss diese ID eindeutig sein, global gilt dies jedoch nicht.

gcloud CLI

Verwenden Sie den Jobtyp und die Flags aus gcloud dataproc jobs submit um den Job zu definieren, der der Vorlage hinzugefügt werden soll. Optional können Sie das ‑‑start-after job-id of another workflow job Flag verwenden, damit der Job nach Abschluss eines oder mehrerer anderer Jobs im Workflow gestartet wird.

Beispiele :

Fügen Sie der Vorlage "my-workflow" den Hadoop-Job "foo" hinzu.

gcloud dataproc workflow-templates add-job hadoop \
    --region=REGION \
    --step-id=foo \
    --workflow-template=my-workflow \
    -- space separated job args

Fügen Sie der Vorlage "my-workflow" den Job "bar" hinzu. Dieser wird ausgeführt, nachdem der Workflow-Job "foo" erfolgreich abgeschlossen wurde.

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=bar \
    --start-after=foo \
    --workflow-template=my-workflow \
    -- space separated job args

Fügen Sie der Vorlage "my-workflow" einen weiteren Job "baz" hinzu. Dieser wird ausgeführt, nachdem die beiden Jobs "foo" und "bar" erfolgreich abgeschlossen wurden.

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=baz \
    --start-after=foo,bar \
    --workflow-template=my-workflow \
    -- space separated job args

REST API

Informationen finden Sie unter WorkflowTemplate.OrderedJob. Dieses Feld wird als Bestandteil einer abgeschlossenen WorkflowTemplate bereitgestellt, die mit einer workflowTemplates.create oder workflowTemplates.update Anfrage gesendet wird.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Workflow ausführen

Die Instanziierung einer Workflow-Vorlage führt den durch die Vorlage definierten Workflow aus. Es werden mehrere Instanziierungen einer Vorlage unterstützt – Sie können einen Workflow mehrmals ausführen.

gcloud-Befehl

gcloud dataproc workflow-templates instantiate TEMPLATE_ID \
    --region=REGION

Der Befehl liefert eine Vorgangs-ID, mit der Sie den Workflow-Status verfolgen können.

Beispielbefehl und -ausgabe :
gcloud beta dataproc workflow-templates instantiate my-template-id \
    --region=us-central1
...
WorkflowTemplate [my-template-id] RUNNING
...
Created cluster: my-template-id-rg544az7mpbfa.
Job ID teragen-rg544az7mpbfa RUNNING
Job ID teragen-rg544az7mpbfa COMPLETED
Job ID terasort-rg544az7mpbfa RUNNING
Job ID terasort-rg544az7mpbfa COMPLETED
Job ID teravalidate-rg544az7mpbfa RUNNING
Job ID teravalidate-rg544az7mpbfa COMPLETED
...
Deleted cluster: my-template-id-rg544az7mpbfa.
WorkflowTemplate [my-template-id] DONE

REST API

Weitere Informationen finden Sie unter workflowTemplates.instantiate.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Fehler in Workflow-Jobs

Bei einem Fehler in einem Workflow-Job schlägt der Workflow fehl. Managed Service for Apache Spark versucht, die Auswirkungen von Fehlern zu mindern, indem alle gleichzeitig ausgeführten Jobs fehlschlagen und verhindert wird, dass nachfolgende Jobs gestartet werden.

Workflows überwachen und auflisten

gcloud CLI

So überwachen Sie einen Workflow:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

Hinweis: Die Vorgangs-ID wird zurückgegeben, wenn Sie den Workflow instanziieren mit gcloud dataproc workflow-templates instantiate (siehe Workflow ausführen).

So listen Sie den Workflow-Status auf:

gcloud dataproc operations list \
    --region=REGION \
    --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"

REST API

Wenn Sie einen Workflow beobachten möchten, verwenden Sie die Managed Service for Apache Spark operations.get.

Wenn Sie ausgeführte Workflows auflisten möchten, verwenden Sie die Managed Service for Apache Spark operations.list mit einem Labelfilter.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Workflows beenden

Sie können Workflows mit der Google Cloud CLI oder durch Aufrufen der Dataproc API beenden.

gcloud-Befehl

gcloud dataproc operations cancel OPERATION_ID \
    --region=REGION
Hinweis: Dies ist die Vorgangs-ID, die geliefert wird, wenn der Workflow mit gcloud dataproc workflow-templates instantiate instanziiert wird (siehe Workflow ausführen).

REST API

Informationen finden Sie unter operations.cancel API.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Workflow-Vorlagen aktualisieren

Aktualisierungen wirken sich nicht auf laufende Workflows aus. Die neue Vorlagenversion gilt nur für neue Workflows.

gcloud CLI

Workflow-Vorlagen können durch die Ausgabe neuer gcloud workflow-templates -Befehle aktualisiert werden, die auf eine vorhandene Workflow-Vorlagen-ID verweisen:

auf eine vorhandene Workflow-Vorlage.

REST API

So aktualisieren Sie eine Vorlage mit der REST API:

  1. Rufen Sie workflowTemplates.get auf, das die aktuelle Vorlage mit der aktuellen Serverversion im Feld version zurückgibt.
  2. Aktualisieren Sie die abgerufene Vorlage.
  3. Rufen Sie workflowTemplates.update mit der aktualisierten Vorlage auf.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.

Workflow-Vorlagen löschen

gcloud CLI

gcloud dataproc workflow-templates delete TEMPLATE_ID \
    --region=REGION

Hinweis: Dies ist die Vorgangs-ID, die geliefert wird, wenn der Workflow instanziiert wird mit gcloud dataproc workflow-templates instantiate (siehe Workflow ausführen).

REST API

Weitere Informationen finden Sie unter workflowTemplates.delete.

Console

Sie können vorhandene Workflow-Vorlagen und instanziierte Workflows von der Managed Service for Apache Spark Workflows-Seite in der Google Cloud Console aufrufen.