您可以運用本頁面的資訊監控 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
新增或變更工作流程逾時
如要為現有範本新增或變更工作流程逾時,請執行 gcloud dataproc workflow-templates set-dag-timeout 指令並加上 --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 控制台不支援更新工作流程範本。