本發(fā)明涉及分布式運(yùn)算框架技術(shù)領(lǐng)域,特別涉及一種基于資源統(tǒng)一調(diào)度的分布式資源調(diào)度方法。
背景技術(shù):
不同的分布式運(yùn)算框架(spark,hadoop,es,mpi,cassandra等)中的不同任務(wù)往往需要的資源(內(nèi)存,cpu,網(wǎng)絡(luò)io等)不同,它們運(yùn)行在同一個集群中,會相互干擾,任務(wù)之間由資源爭用導(dǎo)致效率下降,運(yùn)維成本升高。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法,用于解決避免任務(wù)之間由資源爭用導(dǎo)致效率下降的問題。
本發(fā)明一種統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法,其中,包括:確定可用資源的內(nèi)容;將收集到的可用資源封裝成可用資源列表;確定各分布式計算框架的優(yōu)先級;按照分布式計算框架的優(yōu)先級的由高到低順序,由分布式計算框架選擇可用資源列表中的資源,每個分布式計算框架選擇完畢后,更新可用資源列表,直至所有的分布式計算框架都選擇完畢或可用資源列表中沒有可用資源;從確定可用資源的內(nèi)容重新開始本方法。
根據(jù)本發(fā)明的統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法的一實施例,其中,可用資源包括資源調(diào)度從節(jié)點的可用cpu和可用內(nèi)存。
根據(jù)本發(fā)明的統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法的一實施例,其中,資源列表包括:可用的資源調(diào)度從節(jié)點集合,每個資源調(diào)度從節(jié)點集合包括:資源調(diào)度從節(jié)點的編號,可用cpu和可用內(nèi)存信息。
根據(jù)本發(fā)明的統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法的一實施例,其中,每個分布式計算框架選擇完畢后,更新可用資源列表,并將更新后的可用資源列表發(fā)送給次一優(yōu)先級的分布式計算框架。
根據(jù)本發(fā)明的統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法的一實施例,其中,分布式計算框架按照其內(nèi)部的計算需求,根據(jù)可用資源列表中的資源信息,選擇所需的可用資源。
本發(fā)明的統(tǒng)一資源調(diào)度的分布式資源調(diào)度的方法,提供一種資源調(diào)度機(jī)制避免任務(wù)之間由資源爭用導(dǎo)致效率下降,同時考慮到資源利用率,運(yùn)維成本,數(shù)據(jù)共享等因素,一般希望將所有這些框架部署到一個公共的集群中,讓它們共享集群的資源,并對資源進(jìn)行統(tǒng)一使用。
附圖說明
圖1所示為本發(fā)明基于統(tǒng)一資源調(diào)度的分布式資源調(diào)度系統(tǒng)的模塊圖。
具體實施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點更加清楚,下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)描述。
圖1所示為本發(fā)明基于統(tǒng)一資源調(diào)度的分布式資源調(diào)度系統(tǒng)的模塊圖,如圖1所示,包括:資源調(diào)度主節(jié)點m、資源調(diào)度從節(jié)點s1、資源調(diào)度從節(jié)點s2、分布式計算框架f1、分布式計算框架f2。
如圖1所示,資源調(diào)度主節(jié)點m負(fù)責(zé)集群整體資源的統(tǒng)計、資源的一級調(diào)度和具體執(zhí)行任務(wù)的下發(fā)。包括以下三個組件:資源統(tǒng)計器:負(fù)責(zé)接收集群中資源調(diào)度從節(jié)點上報的可用資源信息;一級調(diào)度器:將匯總的資源信息發(fā)送給已注冊的分布式計算框架;任務(wù)下發(fā)器:負(fù)責(zé)將分布式計算任務(wù)下發(fā)至資源調(diào)度從節(jié)點進(jìn)行執(zhí)行。
如圖1所示,資源調(diào)度從節(jié)點s1和s2,用于匯報本節(jié)點上的可用資源給資源調(diào)度主節(jié)點,并負(fù)責(zé)執(zhí)行具體的任務(wù)。包括以下三個組件:資源收集器:監(jiān)控當(dāng)前節(jié)點上可用的資源;任務(wù)監(jiān)控器:負(fù)責(zé)接收啟動資源調(diào)度主節(jié)點發(fā)送的任務(wù),創(chuàng)建資源隔離容器執(zhí)行任務(wù);資源隔離容器:負(fù)責(zé)根據(jù)指定的資源獨(dú)立運(yùn)行的,相互間進(jìn)程隔離的輕量級虛擬機(jī)。
如圖1所示,分布式計算框架f2負(fù)責(zé)具體資源的二級調(diào)度和任務(wù)分解,需要注冊到資源調(diào)度主節(jié)點上。包括以下三個主要組件:注冊器:向資源調(diào)度主節(jié)點注冊,申請監(jiān)控集群資源;任務(wù):在資源調(diào)度從節(jié)點上執(zhí)行的具體工作,每個任務(wù)包含運(yùn)行時所需要的資源信息;二級調(diào)度器:接收資源調(diào)度主節(jié)點一級調(diào)度器發(fā)送的可用資源信息,根據(jù)自身任務(wù)所需的資源將任務(wù)確定到某個資源調(diào)度從節(jié)點進(jìn)行執(zhí)行。
如圖1所示,本發(fā)明基于資源統(tǒng)一調(diào)度的分布式資源調(diào)度方法的一實施例包括:資源調(diào)度從節(jié)點s1收集機(jī)器可用資源,本實施例可以包括4個cpu,4g內(nèi)存并告知資源調(diào)度主節(jié)點m。資源調(diào)度從節(jié)點s2收集機(jī)器上可用資源包括2個cpu和1g內(nèi)存,并告知資源調(diào)度主節(jié)點m。
圖1中的調(diào)度順序1-8與本實施例的基于資源統(tǒng)一調(diào)度的分布式資源調(diào)度方法的步驟對應(yīng),確定分布式計算框架f1與分布式計算框架f2的優(yōu)先級次序,如分布式計算框架f1優(yōu)先級高,資源調(diào)度主節(jié)點m將收集到的可用資源封裝成可用資源列表,本實施例為[{s1,4cpu,4g},{s2,2cpu,1g}],即資源調(diào)度從節(jié)點s1和資源調(diào)度從節(jié)點s2的可調(diào)用的cpu和內(nèi)存,按照一定優(yōu)先級首先發(fā)送給分布式計算框架f1。
分布式計算框架f1根據(jù)資源列表的內(nèi)容決定每個資源調(diào)度從節(jié)點執(zhí)行哪些任務(wù)。分布式計算框架f1決定在資源調(diào)度從節(jié)點s2上運(yùn)行任務(wù)task1(此任務(wù)消耗2個cpu,1g內(nèi)存),在資源調(diào)度從節(jié)點s1上運(yùn)行任務(wù)task2(此任務(wù)消耗1個cpu,2g內(nèi)存),并將此決定封裝成任務(wù)分配列表[{f1,task1,s2,2cpu,1g},{f1,task2,s1,1cpu,2g}]告知資源調(diào)度主節(jié)點m。
資源調(diào)度主節(jié)點m接收到分布式計算框架f1的任務(wù)分配列表將任務(wù)分布式計算框架f1的task2下發(fā)至資源調(diào)度從節(jié)點s1,由資源調(diào)度從節(jié)點s1負(fù)責(zé)創(chuàng)建資源隔離容器執(zhí)行任務(wù)。
資源調(diào)度主節(jié)點m接收到分布式計算框架f1的任務(wù)分配列表將分布式計算框架f1的任務(wù)task1下發(fā)至資源調(diào)度從節(jié)點s2,由資源調(diào)度從節(jié)點s2負(fù)責(zé)創(chuàng)建資源隔離容器執(zhí)行任務(wù)。
資源調(diào)度主節(jié)點m重新計算剩余可用資源,將剩余可用資源列表[{s1,3cpu,2g}]發(fā)送給下一優(yōu)先級的分布式框架f2。
分布式計算框架f2根據(jù)資源列表決定在資源調(diào)度從節(jié)點s1上運(yùn)行任務(wù)task1(此任務(wù)消耗2個cpu,2g內(nèi)存),并將此決定封裝成任務(wù)分配列表[{f2,task1,s1,2cpu,2g}]告知資源調(diào)度主節(jié)點m。
資源調(diào)度主節(jié)點m接收到分布式計算框架f2的任務(wù)分配列表將任務(wù)分布式計算框架f2的task1下發(fā)至s1,由資源調(diào)度從節(jié)點s1負(fù)責(zé)創(chuàng)建資源隔離容器執(zhí)行任務(wù)。
等待指定的一段時間,重復(fù)步驟1。
本發(fā)明基于資源統(tǒng)一調(diào)度的分布式資源調(diào)度方法,快速高效的完成對某個分布式計算所需資源的分配最核心的就是調(diào)度機(jī)制,本方法采用兩層調(diào)度算法:首先由資源調(diào)度主節(jié)點的一級調(diào)度器粗粒度地將資源給某個分布式計算框架,然后由框架的二級調(diào)度器實現(xiàn)內(nèi)部的細(xì)粒度的資源調(diào)度。實現(xiàn)了共享集群的資源,以及資源的統(tǒng)一使用
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。