本申請(qǐng)涉及大數(shù)據(jù),具體涉及一種任務(wù)調(diào)度方法、裝置、系統(tǒng)和電子設(shè)備。
背景技術(shù):
1、目前,統(tǒng)一調(diào)度工具承擔(dān)大數(shù)據(jù)平臺(tái)各類任務(wù)的調(diào)度,包括b(business?supportsystem,業(yè)務(wù))域、o(operation?support?system,運(yùn)營(yíng))域和m(management?supportsystem,管理)域的任務(wù),負(fù)責(zé)多套hadoop集群和/或mpp數(shù)據(jù)庫(kù)集群的數(shù)據(jù)采集任務(wù)的調(diào)度運(yùn)行。
2、任務(wù)的調(diào)度中,調(diào)度的觸發(fā)包括任務(wù)觸發(fā)調(diào)度、時(shí)間觸發(fā)調(diào)度、人工觸發(fā)調(diào)度、接口觸發(fā)調(diào)度和強(qiáng)制觸發(fā)調(diào)度等。任務(wù)在調(diào)度階段首先進(jìn)行否決檢查,包括基礎(chǔ)條件檢查、依賴檢查和并發(fā)數(shù)檢查等,否決檢查未通過(guò)的任務(wù)會(huì)被轉(zhuǎn)移到等待隊(duì)列池中,由后臺(tái)子線程自動(dòng)輪詢?cè)俅翁幚怼?/p>
3、針對(duì)否決檢查通過(guò)的任務(wù),目前調(diào)度工具都是基于調(diào)度策略通道進(jìn)行并發(fā)訪問(wèn)集群控制的。圖1示出現(xiàn)有的任務(wù)調(diào)度方法的流程示意圖,從圖1中可以看出,目前在進(jìn)行調(diào)度時(shí)會(huì)將滿足調(diào)度策略的任務(wù)轉(zhuǎn)移到運(yùn)行隊(duì)列池并提交給運(yùn)行節(jié)點(diǎn),運(yùn)行節(jié)點(diǎn)將任務(wù)提交給集群運(yùn)行。此種情況下,當(dāng)集群資源繁忙時(shí),運(yùn)行節(jié)點(diǎn)將滿足調(diào)度策略的任務(wù)源源不斷的提交至集群,會(huì)導(dǎo)致集群負(fù)載越來(lái)越重,從而影響到集群中正在運(yùn)行的任務(wù),形成惡性循環(huán)。當(dāng)集群資源空閑時(shí),由于調(diào)度策略的限制,僅會(huì)將固定數(shù)量的任務(wù)提交給集群,這就導(dǎo)致集群資源空閑,進(jìn)而難以最大化利用集群資源。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供一種任務(wù)調(diào)度方法、裝置、系統(tǒng)和電子設(shè)備,用以解決任務(wù)調(diào)度時(shí)未考慮集群資源情況,僅根據(jù)調(diào)度策略進(jìn)行并發(fā)訪問(wèn)集群控制導(dǎo)致的集群負(fù)載過(guò)重或集群資源利用率低的問(wèn)題。
2、第一方面,本申請(qǐng)實(shí)施例提供一種任務(wù)調(diào)度方法,包括:
3、確定需要調(diào)度運(yùn)行的調(diào)度任務(wù);
4、對(duì)各集群的資源進(jìn)行檢查,確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量;
5、基于各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定需要提交到各所述集群的目標(biāo)調(diào)度任務(wù);
6、將所述目標(biāo)調(diào)度任務(wù)轉(zhuǎn)移至運(yùn)行隊(duì)列池。
7、在一個(gè)實(shí)施例中,所述對(duì)各集群的資源進(jìn)行檢查,確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,包括:
8、每間隔第一預(yù)設(shè)時(shí)長(zhǎng),采集一次各所述集群的當(dāng)前資源數(shù)據(jù);
9、基于預(yù)設(shè)歷史時(shí)長(zhǎng)中各所述集群的歷史資源使用情況,分別生成各所述集群對(duì)應(yīng)的多時(shí)段運(yùn)行記錄表,所述多時(shí)段運(yùn)行記錄表表征各所述集群在預(yù)設(shè)時(shí)間周期內(nèi)多個(gè)時(shí)段的資源使用情況;
10、基于各所述集群最新的當(dāng)前資源數(shù)據(jù)和各所述集群的多時(shí)段運(yùn)行記錄表,分別確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量。
11、在一個(gè)實(shí)施例中,所述確定需要調(diào)度運(yùn)行的調(diào)度任務(wù),包括:
12、確定被觸發(fā)調(diào)度的調(diào)度任務(wù);
13、對(duì)被觸發(fā)調(diào)度的調(diào)度任務(wù)進(jìn)行基礎(chǔ)約束檢查,將基礎(chǔ)約束檢查通過(guò)的調(diào)度任務(wù)確定為所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)。
14、在一個(gè)實(shí)施例中,所述方法還包括:
15、對(duì)被觸發(fā)調(diào)度的調(diào)度任務(wù)進(jìn)行基礎(chǔ)約束檢查,將基礎(chǔ)約束檢查未通過(guò)的調(diào)度任務(wù)確定為第一非目標(biāo)調(diào)度任務(wù);
16、從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定不需要提交到各所述集群的第二非目標(biāo)調(diào)度任務(wù);
17、將所述第一非目標(biāo)調(diào)度任務(wù)和所述第二非目標(biāo)調(diào)度任務(wù)轉(zhuǎn)移至等待隊(duì)列池。
18、在一個(gè)實(shí)施例中,所述方法還包括:
19、調(diào)用子線程重新對(duì)各所述集群的資源進(jìn)行檢查,確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量;
20、基于重新確定的各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,從所述等待隊(duì)列池中的所述第一非目標(biāo)調(diào)度任務(wù)和所述第二非目標(biāo)調(diào)度任務(wù)中確定目標(biāo)等待任務(wù);
21、將所述目標(biāo)等待任務(wù)轉(zhuǎn)移至所述運(yùn)行隊(duì)列池。
22、在一個(gè)實(shí)施例中,所述方法還包括:
23、對(duì)所述運(yùn)行隊(duì)列池中的所述目標(biāo)調(diào)度任務(wù)中的被依賴任務(wù)進(jìn)行監(jiān)控;
24、當(dāng)基于監(jiān)控結(jié)果確定下游依賴任務(wù)對(duì)應(yīng)的所有被依賴任務(wù)均運(yùn)行成功時(shí),實(shí)時(shí)觸發(fā)所述下游依賴任務(wù)的調(diào)度運(yùn)行。
25、在一個(gè)實(shí)施例中,所述基于各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定需要提交到各所述集群的目標(biāo)調(diào)度任務(wù),包括:
26、基于各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,根據(jù)各所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)的重要性,從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定需要提交到各所述集群的目標(biāo)調(diào)度任務(wù)。
27、第二方面,本申請(qǐng)實(shí)施例提供一種任務(wù)調(diào)度裝置,包括:
28、第一確定單元,用于確定需要調(diào)度運(yùn)行的調(diào)度任務(wù);
29、檢查單元,用于對(duì)各集群的資源進(jìn)行檢查,確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量;
30、第二確定單元,用于基于各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定需要提交到各所述集群的目標(biāo)調(diào)度任務(wù);
31、轉(zhuǎn)移單元,用于將所述目標(biāo)調(diào)度任務(wù)轉(zhuǎn)移至運(yùn)行隊(duì)列池。
32、第三方面,本申請(qǐng)實(shí)施例提供一種任務(wù)調(diào)度系統(tǒng),包括運(yùn)行節(jié)點(diǎn)和第二方面所述的任務(wù)調(diào)度裝置;
33、所述運(yùn)行節(jié)點(diǎn)用于從運(yùn)行隊(duì)列池中拉取目標(biāo)調(diào)度任務(wù),并將拉取的所述目標(biāo)調(diào)度任務(wù)推送至所述目標(biāo)調(diào)度任務(wù)對(duì)應(yīng)的集群。
34、第四方面,本申請(qǐng)實(shí)施例提供一種電子設(shè)備,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)第一方面所述的任務(wù)調(diào)度方法的步驟。
35、第五方面,本申請(qǐng)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的任務(wù)調(diào)度方法的步驟。
36、本申請(qǐng)實(shí)施例提供的任務(wù)調(diào)度方法、裝置、系統(tǒng)和電子設(shè)備,通過(guò)對(duì)各集群的資源進(jìn)行檢查,能夠了解各集群的資源使用情況,進(jìn)而能夠確定各集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,在確定各集群允許提交的調(diào)度任務(wù)的數(shù)量后,根據(jù)該數(shù)量確定轉(zhuǎn)移至運(yùn)行隊(duì)列池中的目標(biāo)調(diào)度任務(wù),進(jìn)而控制了運(yùn)行隊(duì)列池中目標(biāo)調(diào)度任務(wù)的個(gè)數(shù)。在此基礎(chǔ)上,由于運(yùn)行隊(duì)列池中的目標(biāo)調(diào)度任務(wù)的個(gè)數(shù)是根據(jù)各集群的資源使用情況確定的,此時(shí)運(yùn)行節(jié)點(diǎn)從運(yùn)行隊(duì)列池中拉取目標(biāo)調(diào)度任務(wù)并推送給各集群時(shí),各集群接收到的目標(biāo)調(diào)度任務(wù)是與集群當(dāng)前資源使用情況相匹配的,因此可以提高集群資源的利用率,避免集群負(fù)載過(guò)重的情況。
1.一種任務(wù)調(diào)度方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的任務(wù)調(diào)度方法,其特征在于,所述對(duì)各集群的資源進(jìn)行檢查,確定各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,包括:
3.根據(jù)權(quán)利要求1所述的任務(wù)調(diào)度方法,其特征在于,所述確定需要調(diào)度運(yùn)行的調(diào)度任務(wù),包括:
4.根據(jù)權(quán)利要求3所述的任務(wù)調(diào)度方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的任務(wù)調(diào)度方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的任務(wù)調(diào)度方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的任務(wù)調(diào)度方法,其特征在于,所述基于各所述集群當(dāng)前允許提交的調(diào)度任務(wù)的數(shù)量,從所述需要調(diào)度運(yùn)行的調(diào)度任務(wù)中確定需要提交到各所述集群的目標(biāo)調(diào)度任務(wù),包括:
8.一種任務(wù)調(diào)度裝置,其特征在于,包括:
9.一種任務(wù)調(diào)度系統(tǒng),其特征在于,包括運(yùn)行節(jié)點(diǎn)和權(quán)利要求8所述的任務(wù)調(diào)度裝置;
10.一種電子設(shè)備,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的任務(wù)調(diào)度方法的步驟。