Workflow mit Cloud Scheduler

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

  • Dataproc
  • Compute Engine
  • Cloud Scheduler

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

Projekt einrichten

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Dataproc, Compute Engine, and Cloud Scheduler APIs aktivieren.

    Aktivieren Sie die APIs

  5. Installieren und initialisieren Sie das Cloud SDK.
  6. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  7. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  8. Dataproc, Compute Engine, and Cloud Scheduler APIs aktivieren.

    Aktivieren Sie die APIs

  9. Installieren und initialisieren Sie das Cloud SDK.

Benutzerdefinierte Rolle erstellen

  1. Öffnen Sie die Seite IAM & Verwaltung → Rollen in der Cloud Console.
    1. Klicken Sie auf ROLLE ERSTELLEN, um die Seite Rolle erstellen zu öffnen.
    2. Füllen Sie die Felder "Titel", "Beschreibung", "ID" und "Startphase" aus. Vorschlag: Verwenden Sie "Dataproc-Workflow-Vorlage erstellen" als Rollentitel.
    3. Klicken Sie auf
        Berechtigungen hinzufügen.
      1. Klicken Sie im Formular Berechtigungen hinzufügen auf Filter und wählen Sie dann "Berechtigung" aus. Schließen Sie den Filter ab, um "Berechtigung: dataproc.workflowTemplates.instantiate" zu lesen.
      2. Klicken Sie auf das Kästchen links neben der aufgeführten Berechtigung und klicken Sie dann auf HINZUFÜGEN.
    4. Klicken Sie auf der Seite "Rolle erstellen" noch einmal auf PERMISSIONS HINZUFÜGEN, um die vorherigen Unterschritte zu wiederholen und der benutzerdefinierten Rolle die Berechtigung "iam.serviceAccounts.actAs" hinzuzufügen. Auf der Seite Rolle erstellen werden jetzt zwei Berechtigungen aufgeführt.
    5. Klicken Sie auf der Seite Benutzerdefinierte Rolle auf ERSTELLEN. Die benutzerdefinierte Rolle wird auf der Seite Rollen aufgeführt.

Dienstkonto erstellen

  1. Öffnen Sie die Seite IAM & Verwaltung → Dienstkonten in der Cloud Console.

  2. Klicken Sie auf DIENSTKONTO ERSTELLEN, wählen Sie Ihr Projekt aus und füllen Sie dann die folgenden Elemente aus:

      1. Name des Dienstkontos: "workflow-scheduler"
      2. Dienstkonto-ID (dieses Feld wird automatisch ausgefüllt): "workflow-scheduler@your-project-id.iam.gserviceaccount"
      3. Beschreibung des Dienstkontos: Optional description
        1. Klicken Sie auf ERSTELLEN.
        2. Rolle: Wählen Sie die benutzerdefinierte Rolle Dataproc Workflow Template Create aus, die Sie im vorherigen Schritt erstellt haben. Klicken Sie auf WEITER.
        3. Nutzern Zugriff auf dieses Dienstkonto erteilen:
          1. Rolle "Dienstkontonutzer": Sie können dieses Element ignorieren.
          2. Rolle "Dienstkontoadministrator": Insert your Google account email address
        4. Schlüssel erstellen: Sie können dieses Element ignorieren.
        5. Klicken Sie auf "Done" (Fertig).

    Workflow-Vorlage erstellen

    Kopieren Sie die unten aufgeführten Befehle und führen Sie sie in einem lokalen Terminalfenster oder in Cloud Shell aus, um eine Workflow-Vorlage zu erstellen und zu definieren.

    Hinweise:

    • Die Befehle geben die Region "us-central1" an. Sie können eine andere Region angeben oder das Flag --region löschen, wenn Sie zuvor gcloud config set compute/region ausgeführt haben, um das Regionsattribut festzulegen.
    • Die Sequenz "--" (Bindestrich-Bindestrich-Leerzeichen) im Befehl add-job übergibt das Argument 1000 an den SparkPi-Job, der die Anzahl der Stichproben angibt, die zur Schätzung des Werts von Pi verwendet werden.

    1. Erstellen Sie die Workflow-Vorlage.

      gcloud dataproc workflow-templates create sparkpi \
          --region=us-central1
      
    2. Fügen Sie der Workflow-Vorlage den Spark-Job hinzu. Die Schritt-ID "compute" ist erforderlich und identifiziert den hinzugefügten SparkPi-Job.
      gcloud dataproc workflow-templates add-job spark \
          --workflow-template=sparkpi \
          --step-id=compute \
          --class=org.apache.spark.examples.SparkPi \
          --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
          --region=us-central1 \
          -- 1000
      

    3. Führen Sie den Workflow mit einem verwalteten Einzelknoten aus. Dataproc erstellt den Cluster, führt den Workflow aus und löscht den Cluster, wenn der Workflow abgeschlossen ist.

      gcloud dataproc workflow-templates set-managed-cluster sparkpi \
          --cluster-name=sparkpi \
          --single-node \
          --region=us-central1
      

    4. Klicken Sie in der Cloud Console auf der Dataproc-Seite Workflows auf den Namen sparkpi, um die Seite Workflow-Vorlagendetails zu öffnen. Bestätigen Sie die Attribute der SparkPi-Vorlage.

    Cloud Scheduler-Job erstellen

    1. Öffnen Sie die Seite Cloud Scheduler in der Cloud Console. Sie müssen möglicherweise Ihr Projekt auswählen, um die Seite zu öffnen. Klicken Sie auf Job ERSTELLEN.

    2. Geben Sie die folgenden Jobinformationen ein oder wählen Sie diese aus:

      1. Region auswählen: "us-central" oder eine andere Region, in der Sie Ihre Workflow-Vorlage erstellt haben
      2. Name: "sparkpi"
      3. Häufigkeit: Mit "* * * * *" wird jede Minute ausgewählt. "0 9 * * 1" wählt jeden Montag um 9 Uhr aus. Weitere Informationen zu anderen unix-cron-Werten finden Sie unter Jobzeitplan definieren. Hinweis: Sie können auf die Schaltfläche JETZT AUSFÜHREN in den Cloud Scheduler-Jobs in der Cloud Console klicken, um den Job auszuführen und zu testen, unabhängig von der Häufigkeit, die Sie für den Job eingestellt haben.
      4. Zeitzone: Wählen Sie Ihre timezone aus. Geben Sie "USA" ein, um die US-Zeitzonen aufzulisten.
      5. Ziel: „HTTP“
      6. URL: Fügen Sie nach dem Einfügen von your-project-id die folgende URL ein. Ersetzen Sie "us-central1", wenn Sie Ihre Workflow-Vorlage in einer anderen Region erstellt haben. Diese URL ruft die Dataproc API workflowTemplates.instantiate auf, um Ihre Sparkpi-Workflow-Vorlage auszuführen.
        https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
        
      7. HTTP-Methode:
        1. "POST"
        2. Text: "{}"
      8. Auth-Header:
        1. "Add OAuth token"
        2. Dienstkonto: Fügen Sie den service account address des Dienstkontos ein, das Sie für diese Anleitung erstellt haben. Sie können die folgende Kontoadresse nach dem Einfügen von your-project-id verwenden:
          workflow-scheduler@your-project-id.iam.gserviceaccount
          
        3. Bereich: Sie können dieses Element ignorieren.
      9. Klicken Sie auf ERSTELLEN.

    Geplanten Workflow-Job testen

    1. Klicken Sie in der Jobzeile sparkpi auf der Seite Cloud Scheduler-Jobs auf JETZT AUSFÜHREN.

    2. Warten Sie einige Minuten und öffnen Sie dann die Dataproc-Seite Workflows, um zu prüfen, ob der SparkPi-Workflow abgeschlossen ist.

    3. Nachdem der Workflow den verwalteten Cluster gelöscht hat, bleiben die Jobdetails in der Cloud Console erhalten. Klicken Sie auf den compute...-Job, der auf der Dataproc-Seite Jobs aufgeführt ist, um Details zum Workflow-Job anzuzeigen.

    Bereinigen

    Der Workflow in dieser Anleitung löscht den verwalteten Cluster, wenn der Workflow abgeschlossen ist. Wenn Sie den Workflow beibehalten, können Sie den Workflow noch einmal ausführen und es fallen keine Gebühren an. Sie können andere in dieser Anleitung erstellte Ressourcen löschen, um wiederkehrende Kosten zu vermeiden.

    Ein Projekt löschen

    1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

      Zur Seite „Ressourcen verwalten“

    2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
    3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

    Workflow-Vorlage löschen

    gcloud dataproc workflow-templates delete sparkpi \
        --region=us-central1
    

    Cloud Scheduler-Job löschen

    Öffnen Sie in der Cloud Console die Seite Cloud Scheduler-Jobs, klicken Sie auf das Kästchen links neben der Funktion sparkpi und klicken Sie auf LÖSCHEN.

    Dienstkonto löschen

    Öffnen Sie in der Cloud Console die Seite IAM & Verwaltung → Dienstkonten, klicken Sie auf das Kästchen links neben dem Dienstkonto workflow-scheduler... und klicken Sie auf LÖSCHEN.

    Nächste Schritte