您可以在 YAML 檔案中定義工作流程範本,然後例項化範本來執行工作流程。您也可以匯入及匯出工作流程範本 YAML 檔案,以建立及更新 Dataproc 工作流程範本資源。
使用 YAML 檔案執行工作流程
如要執行工作流程,而不先建立工作流程範本資源,請使用 gcloud dataproc workflow-templates instantiate-from-file 指令。
- 在 YAML 檔案中定義工作流程範本。YAML 檔案必須包含所有WorkflowTemplate必要欄位 (
id欄位除外),且不得包含version欄位和所有僅限輸出的欄位。在下列工作流程範例中,terasort步驟中的prerequisiteStepIds清單可確保terasort步驟只會在teragen步驟順利完成後開始執行。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 檔案與先前的 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: '' - 執行工作流程。使用自動放置功能時,您必須將 region 傳遞至
gcloud指令。gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
匯入及匯出工作流程範本 YAML 檔案
您可以匯入及匯出工作流程範本 YAML 檔案。一般來說,工作流程範本會先匯出為 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 檔案中篩除。匯入更新過的工作流程範本 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") 傳遞至指令。系統會覆寫 (更新) 範本名稱相同的範本資源,並增加版本號碼。如果沒有同名的範本,系統會建立範本。