本頁提供相關資訊,協助您監控及偵錯 Dataproc 工作流程。
列出工作流程
執行個體化的 WorkflowTemplate 稱為「工作流程」,並以「作業」的形式建立模型。
執行下列 gcloud
指令,列出專案的工作流程:
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
以下是範例要求,列出從「terasort」範本啟動的所有工作流程:
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
請注意,後續查詢只會使用 OPERATION_NAME
的 UUID 部分。
使用 WorkflowMetadata
operation.metadata
欄位提供相關資訊,協助您診斷工作流程失敗的原因。
以下是 WorkflowMetadata
範例,包括節點 (作業) 圖表,內嵌於作業中:
{ "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!
擷取範本
如上例所示,metadata
包含範本 ID 和版本。
"template": "terasort", "version": 1,
如果範本未刪除,則可透過 describe-with-version 要求擷取具現化的範本版本。
gcloud dataproc workflow-templates describe terasort \ --region=region \ --version=1
列出範本啟動的叢集作業:
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
以下是要求列出透過範本提交的工作範例:
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
列出從工作流程執行個體提交的工作:
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
工作流程逾時
您可以設定工作流程逾時時間,如果工作流程的工作未在逾時時間內完成,系統就會取消工作流程。逾時期限適用於工作流程中的工作有向非循環圖 (DAG) (工作流程中的工作序列),而非整個工作流程作業。逾時時間是從第一個工作流程工作開始時起算,不包括建立受管理叢集所花的時間。如果逾時期間結束時有任何工作正在執行,系統會停止所有執行中的工作、結束工作流程,並刪除工作流程執行的代管叢集 (如有)。
優點:使用這項功能,可避免因工作停滯而必須手動結束工作流程。
設定工作流程範本逾時
建立工作流程範本時,可以設定工作流程範本逾時期間。您也可以更新工作流程範本,為現有的工作流程範本新增工作流程逾時。
gcloud
如要在新範本上設定工作流程逾時,請搭配 gcloud dataproc workflow-templates create 指令使用 --dag-timeout
標記。您可以使用「s」、「m」、「h」和「d」後置字元,分別設定秒、分鐘、小時和天數的持續時間值。逾時時間長度必須介於 10 分鐘 (「10m」) 到 24 小時 (「24h」或「1d」) 之間。
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
如要設定工作流程逾時,請在 workflowTemplates.create 要求中,填寫 WorkflowTemplate
dagTimeout
欄位。
控制台
目前 Google Cloud 控制台不支援建立工作流程範本。
更新工作流程範本逾時
您可以更新現有的工作流程範本,變更、新增或移除工作流程逾時。
gcloud
新增或變更工作流程逾時時間
如要在現有範本中新增或變更工作流程逾時,請使用 --dag-timeout
旗標搭配 gcloud dataproc workflow-templates set-dag-timeout 指令。你可以使用「s」、「m」、「h」和「d」後置字元,分別設定秒、分鐘、小時和天數的持續時間值。逾時時間長度必須介於 10 分鐘 (「10m」) 至 24 小時 (「24h」) 之間。
gcloud dataproc workflow-templates set-dag-timeout template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d")
移除工作流程逾時
如要從現有範本移除工作流程逾時,請使用 gcloud dataproc workflow-templates remove-dag-timeout 指令。
gcloud dataproc workflow-templates remove-dag-timeout template-id (such as "my-workflow") \ --region=region
API
新增或變更工作流程逾時時間
如要新增或變更現有範本的工作流程逾時時間,請填寫範本的dagTimeout
欄位,輸入新的或變更後的逾時值,更新工作流程範本。
移除工作流程逾時
如要從現有範本移除工作流程逾時,請更新工作流程範本,方法是移除範本的 dagTimeout
欄位。
控制台
目前 Google Cloud 控制台不支援更新工作流程範本。