1.一種分布式工作流調(diào)度的方法,其中,該方法包括以下步驟:
a.獲取用戶提供的作業(yè)執(zhí)行指令、工作流拓?fù)潢P(guān)系以及作業(yè)間的依賴關(guān)系;
b.基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已準(zhǔn)備就緒的所述節(jié)點(diǎn);
c.通過(guò)資源管理模塊確定已準(zhǔn)備就緒的所述節(jié)點(diǎn)所需要的資源配額,并通過(guò)集群資源調(diào)度系統(tǒng)調(diào)度與所述集群資源配額對(duì)應(yīng)的資源至所述資源管理模塊;
d.由已獲取所述資源的所述資源管理模塊通過(guò)資源調(diào)度代理發(fā)送啟動(dòng)指令,以啟動(dòng)遠(yuǎn)程作業(yè)執(zhí)行模塊執(zhí)行所述作業(yè)執(zhí)行指令。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述作業(yè)間的依賴關(guān)系包括以下至少任一項(xiàng):
順序依賴;
數(shù)據(jù)依賴;
選擇依賴;
并行執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述步驟b包括:
構(gòu)建工作流執(zhí)行對(duì)象;
所述工作流執(zhí)行對(duì)象基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已準(zhǔn)備就緒的所述節(jié)點(diǎn);
根據(jù)已準(zhǔn)備就緒的所述節(jié)點(diǎn)構(gòu)建對(duì)應(yīng)的作業(yè)執(zhí)行對(duì)象以記錄所述節(jié)點(diǎn)的工作狀態(tài),其中,所述工作流執(zhí)行對(duì)象包括所有作業(yè)執(zhí)行對(duì)象列表,所述所有作業(yè)執(zhí)行對(duì)象列表中包括所有的作業(yè)執(zhí)行對(duì)象。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述步驟b還包括:
所述作業(yè)執(zhí)行對(duì)象獲取并記錄所述遠(yuǎn)程作業(yè)執(zhí)行模塊發(fā)送的與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn)的作業(yè)執(zhí)行狀態(tài);
當(dāng)所述節(jié)點(diǎn)的所述作業(yè)執(zhí)行狀態(tài)為執(zhí)行結(jié)束狀態(tài)時(shí),所述作業(yè)執(zhí)行對(duì)象指示與所述節(jié)點(diǎn)對(duì)應(yīng)的所述遠(yuǎn)程作業(yè)執(zhí)行模塊退出。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述工作流執(zhí)行對(duì)象基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已執(zhí)行結(jié)束的節(jié)點(diǎn),并指示所述資源管理模塊回收所述已執(zhí)行結(jié)束的節(jié)點(diǎn)對(duì)應(yīng)的資源。
6.根據(jù)權(quán)利要求3或4所述的方法,其中,該方法還包括:
由所述資源管理模塊根據(jù)所述節(jié)點(diǎn)所需要的資源配額的大小將至少一種資源配額劃分為不同種類的資源配額,其中,每種資源配額分別與工作流對(duì)應(yīng)的所述集群資源調(diào)度系統(tǒng)中應(yīng)用的一個(gè)作業(yè)相對(duì)應(yīng),同一種類資源配額中的每份資源分別與所述種類資源配額對(duì)應(yīng)作業(yè)的一個(gè)任務(wù)相對(duì)應(yīng);
通過(guò)所述資源管理模塊記錄每個(gè)工作流中的每種資源配額及其所分別對(duì)應(yīng)的所述集群資源調(diào)度系統(tǒng)中應(yīng)用的作業(yè)。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述步驟c還包括:
通過(guò)所述資源管理模塊遍歷所述所有作業(yè)執(zhí)行對(duì)象列表以檢測(cè)是否存在節(jié)點(diǎn)的增減;
將增減的所述節(jié)點(diǎn)所要求的資源配額與所述每個(gè)工作流中的每種資源配額分別進(jìn)行比較,獲得比較結(jié)果;
根據(jù)所述比較結(jié)果決定向所述集群資源調(diào)度系統(tǒng)對(duì)應(yīng)的應(yīng)用添加新的作業(yè)或者更新已添加作業(yè)的任務(wù)并發(fā)數(shù)量。
8.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述步驟b中通過(guò)檢查以下至少任一項(xiàng)以查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn):
上游節(jié)點(diǎn)是否運(yùn)行完成;
所述作業(yè)間的依賴關(guān)系是否滿足;
所述節(jié)點(diǎn)是否被設(shè)定為跳過(guò);
所述節(jié)點(diǎn)是否為終點(diǎn)。
9.一種分布式工作流調(diào)度的調(diào)度裝置,其中,該調(diào)度裝置包括:
第一獲取裝置,用于獲取用戶提供的作業(yè)執(zhí)行指令、工作流拓?fù)潢P(guān)系以及作業(yè)間的依賴關(guān)系;
第二獲取裝置,用于基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已準(zhǔn)備就緒的所述節(jié)點(diǎn);
確定裝置,用于通過(guò)資源管理模塊確定已準(zhǔn)備就緒的所述節(jié)點(diǎn)所需要的資源配額,并通過(guò)集群資源調(diào)度系統(tǒng)調(diào)度與所述集群資源配額對(duì)應(yīng)的資源至所述資源管理模塊;
執(zhí)行裝置,用于由已獲取所述資源的所述資源管理模塊通過(guò)資源調(diào)度代理發(fā)送啟動(dòng)指令,以啟動(dòng)遠(yuǎn)程作業(yè)執(zhí)行模塊執(zhí)行所述作業(yè)執(zhí)行指令。
10.根據(jù)權(quán)利要求9所述的調(diào)度裝置,其中,所述作業(yè)間的依賴關(guān)系包括以下至少任一項(xiàng):
順序依賴;
數(shù)據(jù)依賴;
選擇依賴;
并行執(zhí)行。
11.根據(jù)權(quán)利要求9所述的調(diào)度裝置,其中,所述第二獲取裝置包括:
第一構(gòu)建單元,用于構(gòu)建工作流執(zhí)行對(duì)象;
查找單元,用于所述工作流執(zhí)行對(duì)象基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已準(zhǔn)備就緒的所述節(jié)點(diǎn);
第二構(gòu)建單元,用于根據(jù)已準(zhǔn)備就緒的所述節(jié)點(diǎn)構(gòu)建對(duì)應(yīng)的作業(yè)執(zhí)行對(duì)象以記錄所述節(jié)點(diǎn)的工作狀態(tài),其中,所述工作流執(zhí)行對(duì)象包括所有作業(yè)執(zhí)行對(duì)象列表,所述所有作業(yè)執(zhí)行對(duì)象列表中包括所有的作業(yè)執(zhí)行對(duì)象。
12.根據(jù)權(quán)利要求11所述的調(diào)度裝置,其中,所述第二獲取裝置還用于:
所述作業(yè)執(zhí)行對(duì)象獲取并記錄所述遠(yuǎn)程作業(yè)執(zhí)行模塊發(fā)送的與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn)的作業(yè)執(zhí)行狀態(tài);
當(dāng)所述節(jié)點(diǎn)的所述作業(yè)執(zhí)行狀態(tài)為執(zhí)行結(jié)束狀態(tài)時(shí),所述作業(yè)執(zhí)行對(duì)象指示與所述節(jié)點(diǎn)對(duì)應(yīng)的所述遠(yuǎn)程作業(yè)執(zhí)行模塊退出。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的調(diào)度裝置,其中,所述工作流執(zhí)行對(duì)象基于所述工作流拓?fù)潢P(guān)系和所述作業(yè)間的依賴關(guān)系查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn),獲取已執(zhí)行結(jié)束的節(jié)點(diǎn),并指示所述資源管理模塊回收所述已執(zhí)行結(jié)束的節(jié)點(diǎn)對(duì)應(yīng)的資源。
14.根據(jù)權(quán)利要求11或12所述的調(diào)度裝置,其中,該調(diào)度裝置還包括:
劃分裝置,用于由所述資源管理模塊根據(jù)所述節(jié)點(diǎn)所需要的資源配額的大小將至少一種所述資源配額劃分為不同種類的資源配額,其中,每種資源配額分別與工作流對(duì)應(yīng)的所述集群資源調(diào)度系統(tǒng)中應(yīng)用的一個(gè)作業(yè)相對(duì)應(yīng),同一種類資源配額中的每份資源配額分別與所述種類資源配額對(duì)應(yīng)作業(yè)的一個(gè)任務(wù)相對(duì)應(yīng);
記錄裝置,用于通過(guò)所述資源管理模塊記錄每個(gè)工作流中的每種資源配額及其所分別對(duì)應(yīng)的所述集群資源調(diào)度系統(tǒng)中應(yīng)用的作業(yè)。
15.根據(jù)權(quán)利要求14所述的調(diào)度裝置,其中,所述確定裝置還包括:
檢測(cè)單元,用于通過(guò)所述資源管理模塊遍歷所述所有作業(yè)執(zhí)行對(duì)象列表以檢測(cè)是否存在節(jié)點(diǎn)的增減;
比較單元,用于將增減的所述節(jié)點(diǎn)所要求的資源配額與所述每個(gè)工作流中的每種資源配額分別進(jìn)行比較,獲得比較結(jié)果;
更新單元,用于根據(jù)所述比較結(jié)果決定向所述集群資源調(diào)度系統(tǒng)對(duì)應(yīng)的應(yīng)用添加新的作業(yè)或者更新已添加作業(yè)的任務(wù)并發(fā)數(shù)量。
16.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的調(diào)度裝置,其中,所述第二獲取裝置通過(guò)檢查以下至少任一項(xiàng)以查找與所述作業(yè)執(zhí)行指令對(duì)應(yīng)的節(jié)點(diǎn):
上游節(jié)點(diǎn)是否運(yùn)行完成;
所述作業(yè)間的依賴關(guān)系是否滿足;
所述節(jié)點(diǎn)是否被設(shè)定為跳過(guò);
所述節(jié)點(diǎn)是否為終點(diǎn)。
17.一種計(jì)算機(jī)設(shè)備,所述計(jì)算機(jī)設(shè)備包括:
一個(gè)或多個(gè)處理器;
存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)計(jì)算機(jī)程序;
當(dāng)所述一個(gè)或多個(gè)計(jì)算機(jī)程序被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)如權(quán)利要求1至8中任一項(xiàng)所述的方法。