工作流程定義是通過拖拽任務節點並建立任務節點之間的關聯來建立可視化的DAG(有向非循環圖)。本文為您介紹如何建立工作流程及工作流程定義的相關操作。
前提條件
已建立專案,詳情請參見管理專案。
建立工作流程
進入專案管理頁面。
使用阿里雲帳號(主帳號)或RAM使用者登入E-MapReduce控制台。
在左側導覽列,選擇EMR Workbench > Workflow。
在Workflow頁面,單擊目標工作空間操作列的控制台。
在项目管理頁面,單擊已有專案的專案名稱。
在左側導覽列,選擇数据开发 > 工作流定义。
在工作流定义頁面,單擊创建工作流。
在创建工作流頁面,拖拽節點塊到畫布中,在彈出的對話方塊中,配置相關的參數,單擊确定。
本樣本以SHELL類型為例,其他任務類型詳情請參見任務類型。
參數
說明
节点名称
任務的名稱。一個工作流程定義中的節點名稱是唯一的。
运行标志
-
正常(預設):運行工作流程時執行該任務。
-
禁止执行:運行工作流程不會執行該任務。
描述
當前節點的功能描述。
任务优先级
流程啟動並執行優先順序。支援以下層級:
-
HIGHEST:最高。
-
HIGH:高。
-
MEDIUM(預設):中。
-
LOW:低。
-
LOWEST:最低。
失败重试次数
工作流程運行失敗自動重試的次數。
失败重试间隔
每次失敗重試的間隔。單位:分。
延时执行时间
延時執行時間,預設為0,即立即執行,設定了該值後才執行延時操作。單位:分。
超时告警
該開關預設關閉。開啟超时告警開關,可設定逾時時間長度,並選擇至少一個逾時策略。
-
選擇超时告警策略,當任務運行時間長度超過設定的逾時時間長度後,系統將向指定的警示組發送通知。
-
選擇超时失败策略,當任務運行時間長度超過設定的逾時時間長度後,該任務執行個體會立即失敗。
任务提交节点
-
调度资源组节点(預設):任務在Workflow的調度資源群組節點提交。
-
EMR集群worker节点(提交到Yarn执行):任務在EMR叢集的Worker節點提交,佔用一個YARN Container。
警告該模式會直接影響EMR叢集的檔案系統或運行環境,請謹慎操作。
使用該模式,您還可以選擇配置以下參數:
-
调度队列:指定任務提交的YARN隊列。
-
任务执行容器内存(MB):指定任務執行容器的記憶體。預設值為1024。
-
虚拟核数:指定任務執行容器的虛擬核心數(vCores)。預設值為1。
-
优先级:指定任務執行容器的優先順序(0-100)。預設值為0,數值越大,優先順序越高。
-
执行用户:預設提交任務的使用者為dolphinscheduler。標準叢集(非高安全叢集),如果需要設定執行使用者,請確保YARN服務包含如下配置項:
-
yarn.nodemanager.container-executor.class=org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor
-
yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users=false
-
-
說明在執行與YARN密切相關的巨量資料任務(如Spark、Hive、Sqoop等)時,建議任务提交节点選擇為EMR集群worker节点(提交到Yarn执行)的方式提交任務,以充分利用YARN的資源調度和管理能力。
脚本
您自訂的Shell程式。
說明在指令碼中進行寫入操作時,請注意:
-
支援將資料寫入遠程儲存系統,如阿里雲OSS、HDFS等Distributed File System。
-
暫不支援將資料寫入本地叢集檔案系統,請避免在指令碼中直接操作本地路徑。例如,
/tmp/local_file.txt。
资源
選擇任務執行時所需的資源檔,請確保您已在资源中心的文件管理頁面,建立或者上傳了相應的檔案。選擇所需檔案後,您可以在任務指令碼中通過完整路徑引用它們。例如,
path/to/test.txt。自定义参数
任務自訂參數,會替換指令碼中
${變數}的內容。更多參數配置資訊,請參見參數說明。前置任务
設定當前任務的前置(上遊)任務。
-
(可選)配置任務之間的依賴關係。
EMR Workflow支援流程間的自訂任務依賴。
單擊任務節點右側的
表徵圖可以串連任務。選中連接線或節點,單擊右上方的
表徵圖,可以刪除任務間的依賴關係或節點。
儲存工作流程定義。
單擊右上方的保存。
在彈出的對話方塊中,配置相關的參數,單擊确定。
參數
說明
工作流名称
工作流程的名稱。
描述
當前工作流程的功能描述。
超时告警
預設關閉。開啟超时告警開關,需填寫超时时长,如果任務執行時間超過逾時時間長度,則會發送警示。
执行策略
支援以下策略:
并行(預設):如果由同一個工作流程定義產生了多個工作流程執行個體,則並存執行工作流程執行個體。
串行等待:如果由同一個工作流程定義產生了多個工作流程執行個體,則串列執行工作流程執行個體。
全域變數
是指標對整個工作流程的所有任務節點都有效參數。
工作流程定義操作
在工作流定义頁面,您可以進行以下操作。
操作 | 說明 |
编辑 | 只能編輯處於下线狀態的工作流程定義。 |
运行 | 只有上线狀態的工作流程能夠運行,但不能編輯。運行工作流程的具體操作,請參見運行工作流程。 |
定时 | 只有上線的工作流程可以定時,系統自動定時調度工作流程運行。建立定時後的狀態為上线,需在定時管理頁面上線定時才生效。定時工作流程的具體操作,請參見定時工作流程。 |
更多 |
|
運行工作流程
每運行一次工作流程,在工作流实例頁面都會產生一個工作流程執行個體。
單擊操作列的运行。
在彈出的對話方塊中,配置相關參數,單擊确定。
參數
說明
失败策略
當某一個任務節點執行失敗時,其他的任務節點需要執行的策略。
继续:某一任務失敗後,其他任務節點正常執行。
结束(預設):某一任務失敗後,終止其下遊任務。
通知策略
當流程結束,根據流程狀態發送流程執行語音總機郵件。通知策略包含都不发(預設),成功发,失败发,成功或失败都发。
流程优先级
流程啟動並執行優先順序。支援以下層級:
-
HIGHEST:最高。
-
HIGH:高。
-
MEDIUM(預設):中。
-
LOW:低。
-
LOWEST:最低。
调度资源组
調度資源群組用於任務的調度運行。在下拉式清單中選擇已有的調度資源群組。
执行集群/模板
系統將根據您選定的調度資源群組自動匹配已綁定的叢集或叢集模板。
說明如果执行集群/模板選擇的是集群模板,則運行工作流程時會按照模板建立叢集,工作流程結束後釋放叢集。此外,如果儲存工作流程定義時,您設定了超时告警參數,一旦工作流程觸發了逾時警示規則,系統也會自動釋放叢集。如果您未設定超时告警,系統會在工作流程運行超過1天后自動釋放叢集。
补数
指運行指定時間範圍內的工作流程定義,根據補數策略產生對應的工作流程執行個體。
說明補數規則: 如果工作流程的定時管理狀態為上線,則按照定時調度設定的頻率規則進行補數;否則,預設按照每天0時的頻率規則進行補數。
使用限制: 單次補數操作產生的工作流程執行個體數量不超過100個。
勾選是否是补数,還需配置以下參數:
依赖模式:支援打开和关闭(預設)。是否觸發下遊依賴節點依賴到當前工作流程的工作流程執行個體的補數。
只有當前補數的工作流程執行個體定時狀態已上線,才會觸發下遊直接依賴到該工作流程執行個體的補數。
执行方式
串行执行:指定時間範圍內,從開始日期至結束日期依次執行補數,依次產生多條流程執行個體。
并行执行(預設): 指定時間範圍內,同時進行多天的補數,同時產生多條流程執行個體。
此方式下,還需配置自定义并行度參數,表示最多並存執行的執行個體數。每次補數的並行度上限為7。
說明建立工作流程定義時,如果選擇并行執行策略,則該工作流程只能并行执行補數;如果選擇串行等待執行策略,則該工作流程只能進行串行执行補數。
调度日期:指定該工作流程啟動並執行時間範圍。
全局参数
在啟動新的流程執行個體時,設定或覆蓋全域參數的值。
是否空跑
判斷是否空跑,空跑則列印日記,直接按成功處理。
在左側導覽列,選擇实例运维>工作流实例,可以查看執行個體的健全狀態。
匯入工作流程
在頁面,單擊导入。
單擊上传,選擇匯出到本地的工作流程(.json檔案),單擊确定。
定時工作流程
在工作流定义頁面,單擊目標工作流程定義操作列的定时。
在彈出的對話方塊中,設定相關參數,單擊确定。
起止时间:在起止時間範圍內,定時運行工作流程;不在起止時間範圍內,不再產生定時工作流程執行個體。
定时:選擇執行的時間。
開啟定时状态列的開關。
相關文檔
如需查看工作流程執行個體資訊,詳情請參見管理工作流程執行個體。
如需查看支援的參數資訊,詳情請參見參數說明。