Auf dieser Seite finden Sie Informationen zum Monitoring und zur Fehlerbehebung von Dataproc-Workflows.
Workflows auflisten
Ein instanziiertes WorkflowTemplate wird als "Workflow" bezeichnet und als "Vorgang" behandelt.
Führen Sie den folgenden gcloud
-Befehl aus, um die Workflows Ihres Projekts aufzulisten:
gcloud dataproc operations list \ --region=region \ --filter="operationType = WORKFLOW"
... OPERATION_NAME DONE projects/.../operations/07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../operations/1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
Im Folgenden finden Sie ein Beispiel für eine Anfrage zum Auflisten aller Workflows, die mit einer "TeraSort"-Vorlage gestartet wurden:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id=terasort"
... OPERATION_NAME DONE projects/.../07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
Beachten Sie, dass nur der UUID-Teil von OPERATION_NAME
in nachfolgenden Abfragen verwendet wird.
WorkflowMetadata verwenden
Das Feld operation.metadata
enthält Informationen zum Diagnostizieren von Workflow-Fehlern.
Hier ist ein Beispiel für WorkflowMetadata
mit einem Diagramm aus Knoten (Jobs), die in einen Vorgang eingebettet sind:
{ "name": "projects/my-project/regions/us-central1/operations/671c1d5d-9d24-4cc7-8c93-846e0f886d6e", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.WorkflowMetadata", "template": "terasort", "version": 1, "createCluster": { "operationId": "projects/my-project/regions/us-central1/operations/8d472870-4a8b-4609-9f7d-48daccb028fc", "Done": true }, "graph": { "nodes": [ { "stepId": "teragen", "jobId": "teragen-vtrprwcgepyny", "state": "COMPLETED" }, { "stepId": "terasort", "prerequisiteStepIds": [ "teragen" ], "jobId": "terasort-vtrprwcgepyny", "state": "FAILED", "error": "Job failed" }, { "stepId": "teravalidate", "prerequisiteStepIds": [ "terasort" ], "state": "FAILED", "error": "Skipped, node terasort failed" } ] }, "deleteCluster": { "operationId": "projects/my-project/regions/us-central1/operations/9654c67b-2642-4142-a145-ca908e7c81c9", "Done": true }, "state": "DONE", "clusterName": "terasort-cluster-vtrprwcgepyny" }, "done": true, "error": { "message": "Workflow failed" } } Done!
Eine Vorlage abrufen
Wie im vorherigen Beispiel gezeigt, enthalten die metadata
die Vorlagen-ID und die Version.
"template": "terasort", "version": 1,
Wenn eine Vorlage nicht gelöscht wurde, können instanziierte Vorlagenversionen durch eine "describe-with-version"-Anfrage abgerufen werden.
gcloud dataproc workflow-templates describe terasort \ --region=region \ --version=1
Clustervorgänge auflisten, die von einer Vorlage gestartet wurden:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... OPERATION_NAME DONE projects/.../cf9ce692-d6c9-4671-a909-09fd62041024 True projects/.../1bbaefd9-7fd9-460f-9adf-ee9bc448b8b7 True
Hier ist ein Beispiel-Request zum Auflisten von Jobs, die von einer Vorlage gesendet wurden:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id = terasort"
... JOB_ID TYPE STATUS terasort2-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE terasort3-3xwsy6ubbs4ak pyspark DONE terasort2-3xwsy6ubbs4ak pyspark DONE terasort1-3xwsy6ubbs4ak pyspark DONE terasort3-ajov4nptsllti pyspark DONE terasort2-ajov4nptsllti pyspark DONE terasort1-ajov4nptsllti pyspark DONE terasort1-b262xachbv6c4 pyspark DONE terasort1-cryvid3kreea2 pyspark DONE terasort1-ndprn46nesbv4 pyspark DONE terasort1-yznruxam4ppxi pyspark DONE terasort1-ttjbhpqmw55t6 pyspark DONE terasort1-d7svwzloplbni pyspark DONE
Jobs auflisten, die von einer Workflowinstanz gesendet wurden:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... JOB_ID TYPE STATUS terasort3-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE
Workflow-Zeitüberschreitungen
Sie können ein Workflow-Zeitlimit festlegen, das den Workflow abbricht, wenn die Jobs des Workflows nicht innerhalb des Zeitlimits abgeschlossen werden. Das Zeitlimit gilt für den DAG (Directed Acyclic Graph) der Jobs im Workflow (die Abfolge von Jobs im Workflow) und nicht für den gesamten Workflowvorgang. Der Ablaufzeitraum beginnt, wenn der erste Workflowjob gestartet wird, dies schließt die Zeit, die zum Erstellen eines verwalteten Clusters benötigt wird, aus. Wenn ein Job am Ende des Zeitlimits ausgeführt wird, werden alle laufenden Jobs angehalten, der Workflow beendet und wenn der Workflow auf einem verwalteten Cluster ausgeführt wurde, wird der Cluster gelöscht.
Vorteile: Mit dieser Funktion können Sie vermeiden, einen Workflow manuell zu beenden, der aufgrund von stockenden Jobs nicht abgeschlossen wird.
Zeitüberschreitung für Workflowvorlage festlegen
Sie können den Zeitraum für die Workflow-Vorlage festlegen, wenn Sie eine Workflow-Vorlage erstellen. Sie können einem vorhandenen Workflow auch eine Zeitüberschreitung für den Workflow hinzufügen, indem Sie die Workflow-Vorlage aktualisieren.
gcloud
Verwenden Sie das Flag --dag-timeout
mit dem Befehl gcloud dataproc workflow-templates create, um ein Workflow-Zeitlimit für eine neue Vorlage festzulegen. Sie können die Suffixe "s", "m", "h" und "d" verwenden, um die Werte für die zweite, die Minute, die Stunde und den Tag festzulegen. Das Zeitlimit muss zwischen 10 Minuten ("10m") und 24 Stunden ("24h" oder "1d") liegen.
gcloud dataproc workflow-templates create template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d"") \ ... other args ...
API
Zum Festlegen eines Workflow-Zeitlimits füllen Sie das Feld WorkflowTemplate
dagTimeout
als Teil einer Anfrage workflowTemplates.create aus.
Console
Derzeit unterstützt die Google Cloud Console das Erstellen einer Workflowvorlage nicht.
Zeitlimit für Workflowvorlagen aktualisieren
Sie können eine vorhandene Workflowvorlage aktualisieren, um ein Workflow-Zeitlimit zu ändern, hinzuzufügen oder zu entfernen.
gcloud
Workflow-Zeitlimit hinzufügen oder ändern
Zum Hinzufügen oder Ändern eines Workflow-Zeitlimits für eine vorhandene Vorlage verwenden Sie das Flag --dag-timeout
mit dem Befehl gcloud dataproc workflow-templates set-dag-timeout. Sie können die Suffixe "s", "m", "h" und "d" verwenden, um die Werte für Sekunde, Minute, Stunde und Tag festzulegen. Das Zeitlimit muss zwischen 10 Minuten ("10m") und 24 Stunden ("24h") liegen.
gcloud dataproc workflow-templates set-dag-timeout template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d")
Workflow-Zeitüberschreitung entfernen
Verwenden Sie den Befehl gcloud dataproc workflow-templates remove-dag-timeout, um ein Workflow-Timeout aus einer vorhandenen Vorlage zu entfernen.
gcloud dataproc workflow-templates remove-dag-timeout template-id (such as "my-workflow") \ --region=region
API
Workflow-Zeitlimit hinzufügen oder ändern
Wenn Sie eine Workflow-Zeitüberschreitung für eine vorhandene Vorlage hinzufügen oder ändern möchten, aktualisieren Sie die Workflow-Vorlage, indem Sie das dagTimeout
-Feld der Vorlage mit dem neuen oder geänderten Zeitüberschreitungswert ausfüllen.
Workflow-Zeitüberschreitung entfernen
Wenn Sie ein Workflow-Zeitlimit aus einer vorhandenen Vorlage entfernen möchten, aktualisieren Sie die Workflow-Vorlage. Entfernen Sie dazu das Feld dagTimeout
der Vorlage.
Console
Derzeit unterstützt die Google Cloud Console das Aktualisieren einer Workflowvorlage nicht.