Die WorkflowTemplates API von Managed Service for Apache Spark bietet einen flexiblen und benutzerfreundlichen Mechanismus zum Verwalten und Ausführen von Workflows. Eine Workflowvorlage ist eine wiederverwendbare Workflowkonfiguration, die Jobs in einer Grafik definiert und Informationen dazu enthält, wo diese Jobs ausgeführt werden sollen.
Wichtige Fakten
- Durch das Instanziieren einer Workflowvorlage wird ein Workflow gestartet. Ein Workflow ist ein Vorgang, bei dem ein gerichteter azyklischer Graph (Directed Acyclic Graph, DAG) von Jobs in einem Cluster ausgeführt wird.
- Wenn der Workflow einen verwalteten Cluster verwendet, wird der Cluster erstellt und die Jobs werden ausgeführt. Nach Abschluss der Jobs wird der Cluster gelöscht.
- Wenn der Workflow eine Clusterauswahl verwendet, werden die Jobs in einem ausgewählten vorhandenen Cluster ausgeführt.
- Workflows sind ideal für komplexe Jobabläufe geeignet. Sie können Jobabhängigkeiten erstellen und damit festlegen, dass ein Job erst gestartet wird, nachdem die zugehörigen Abhängigkeiten erfolgreich abgeschlossen wurden.
- Wenn Sie eine Workflowvorlage erstellen, erstellt Managed Service for Apache Spark keinen Cluster und sendet keine Jobs an einen Cluster. Managed Service for Apache Spark erstellt oder wählt einen Cluster aus und führt Workflowjobs auf dem Cluster aus, wenn eine Workflowvorlage instanziiert wird.
Arten von Workflowvorlagen
Verwalteter Cluster
In einer Workflowvorlage kann ein verwalteter Cluster angegeben sein. Der Workflow erstellt einen „flüchtigen“ Cluster, um Workflowjobs auszuführen, und löscht den Cluster, wenn der Workflow abgeschlossen ist.
Clusterauswahl
In einer Workflowvorlage kann ein vorhandener Cluster angegeben werden, auf dem Workflowjobs ausgeführt werden sollen. Dazu werden ein oder mehrere Nutzerlabels angegeben, die zuvor an den Cluster angehängt wurden. Der Workflow wird auf einem Cluster ausgeführt, der mit allen Labels übereinstimmt. Wenn mehrere Cluster mit allen Labels übereinstimmen, wählt Managed Service for Apache Spark den Cluster mit dem meisten verfügbaren YARN-Arbeitsspeicher aus, um alle Workflow-Jobs auszuführen. Am Ende des Workflows löscht Managed Service for Apache Spark den ausgewählten Cluster nicht. Weitere Informationen finden Sie unter Cluster-Selektoren mit Workflows verwenden.
Parametrisiert
Wenn Sie eine Workflowvorlage mehrmals mit unterschiedlichen Werten ausführen, verwenden Sie Parameter, um die Workflowvorlage nicht für jede Ausführung bearbeiten zu müssen:
definieren Sie Parameter in der Vorlage und
unterschiedliche Werte für die Parameter für jede Ausführung übergeben.
Weitere Informationen finden Sie unter Workflowvorlagen parametrisieren.
Inline
Workflows können inline mit dem Befehl gcloud mit YAML-Dateien für Workflowvorlagen oder durch Aufrufen der InstantiateInline API von Managed Service for Apache Spark instanziiert werden (siehe Inline-Dataproc-Workflows verwenden).
Inline-Workflows erstellen oder ändern keine Ressourcen für Workflow-Vorlagen.
Anwendungsfälle für Workflowvorlagen
Automatisierung sich wiederholender Aufgaben. Workflows schließen häufig verwendete Clusterkonfigurationen und -jobs ein.
Transaktionales Fire-and-Forget-API-Interaktionsmodell. Workflowvorlagen ersetzen die Schritte eines typischen Ablaufs, darunter:
- Cluster erstellen
- Jobs senden
- Polling
- Cluster löschen
Workflow-Vorlagen verwenden ein einzelnes Token, um den Fortschritt von der Clustererstellung bis zum Löschen zu verfolgen und die Fehlerbehandlung und -behebung zu automatisieren. Sie vereinfachen auch die Einbindung von Managed Service for Apache Spark in andere Tools wie Cloud Run-Funktionen und Managed Service for Apache Airflow.
Unterstützung für sitzungsspezifische und langlebige Cluster. Eine häufige Herausforderung bei der Ausführung von Apache Hadoop besteht in der Optimierung und Anpassung der Größe von Clustern. Sitzungsspezifische (verwaltete) Cluster sind einfacher zu konfigurieren, da sie eine einzelne Arbeitslast ausführen. Cluster-Selektoren können mit langlebigeren Clustern verwendet werden, um dieselbe Arbeitslast wiederholt auszuführen, ohne dass die amortisierten Kosten für das Erstellen und Löschen von Clustern anfallen.
Granulare IAM-Sicherheit. Für das Erstellen von Managed Service for Apache Spark-Clustern und das Senden von Jobs sind Alles-oder-Nichts-IAM-Berechtigungen erforderlich. Workflowvorlagen verwenden die vorlagenspezifische Berechtigung workflowTemplates.instantiate und sind nicht von Cluster- oder Jobberechtigungen abhängig.