您可以在 YAML 檔案中定義工作流程範本,接著將範本例項化來執行工作流程,也可以匯入及匯出工作流程範本的 YAML 檔案,以便建立及更新 Dataproc 工作流程範本資源。
透過 YAML 檔案執行工作流程
如要執行工作流程,但不想先建立工作流程範本資源,請執行 gcloud dataproc workflow-templates instantiate-from-file 指令。
- 在 YAML 檔案中定義工作流程範本。YAML 檔案須包含所有必要的 WorkflowTemplate 欄位 (
id欄位除外),且不得包含version欄位和任何僅限輸出的欄位。在下列工作流程範例中,terasort步驟中的prerequisiteStepIds清單可以確保teragen步驟順利完成後,才會開始執行terasort步驟。jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: us-central1-a - 執行工作流程:
gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
使用 YAML 檔案和 Dataproc 自動選擇可用區位置功能,將工作流程例項化
- 在 YAML 檔案中定義工作流程範本。這個 YAML 檔案與先前的相同,但
zoneUri欄位設為空字串 (''),由 Dataproc 的自動選擇可用區位置功能選取叢集可用區。jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: '' - 執行工作流程。使用自動選擇可用區位置功能時,必須將區域傳遞至
gcloud指令。gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
匯入及匯出工作流程範本 YAML 檔案
您可以匯入及匯出工作流程範本 YAML 檔案。工作流程範本通常會先匯出為 YAML 檔案,經過編輯之後,再重新匯入來更新範本。
將工作流程範本匯出為 YAML 檔案。系統會在匯出過程中篩除輸出內容的
id和version欄位,以及所有僅供輸出的欄位,因此這些欄位不會顯示在匯出的 YAML 檔案中。 您可以將 WorkflowTemplategcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id或完整範本資源name("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID") 傳遞至指令。在本機編輯 YAML 檔案。請注意,匯入的 YAML 檔案不得有
id、version和僅供輸出的欄位,範本匯出時已篩除這些欄位。匯入更新過的工作流程範本 YAML 檔案:
您可以將 WorkflowTemplategcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id或完整範本資源name("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID") 傳遞至指令。系統會覆寫 (更新) 名稱相同的範本資源,並遞增版本號碼。如果沒有名稱相同的資源,則會建立新範本。