一種面向實時云平臺的任務調度與資源分配方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種面向實時云平臺的任務調度與資源分配方法及系統(tǒng),包括全局狀態(tài)存儲模塊獲取云平臺的運行狀況,將運行狀況上報給全局狀態(tài)監(jiān)控模塊;全局狀態(tài)監(jiān)控模塊根據(jù)運行狀況,利用任務分配矩陣、任務鄰接矩陣和掩碼矩陣制定相應的調度策略;根據(jù)調度策略在實時云平臺中進行節(jié)點驅動型和/或任務驅動型任務調度與資源分配,本發(fā)明分配任務時充分考慮任務之間的關系、降低節(jié)點之間的通信量、減少帶寬壓力,從而提高平臺性能;能很好的適應云平臺動態(tài)調度的各種情況,保證云平臺在運行過程中時刻保持較高的計算性能和資源利用率;且時間復雜度低,適合在具有大規(guī)模節(jié)點和大任務量的云環(huán)境中部署使用。
【專利說明】一種面向實時云平臺的任務調度與資源分配方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及實時云計算領域,尤其涉及一種面向實時云平臺的任務調度與資源分配方法及系統(tǒng)。
【背景技術】
[0002]當今社會的數(shù)據(jù)量日益膨脹,而且數(shù)據(jù)越來越多地以大規(guī)模、連續(xù)的流的形式出現(xiàn)。數(shù)據(jù)的價值隨著時間的流逝而降低,所以要求數(shù)據(jù)出現(xiàn)后盡快地對它們進行處理,而不是緩存起來進行批處理。例如,搜索引擎每秒鐘處理成千上萬次查詢,每個頁面包含多個廣告,為了及時處理用戶反饋,需要一個低延遲、可擴展、高可靠的處理引擎。傳統(tǒng)的DBMS或采用Map/Reduce來進行實時數(shù)據(jù)流處理的方法都很難滿足應用需求。
[0003]為此,國內外出現(xiàn)了很多流計算平臺,如Yahoo!的開源流計算平臺S4(SimpleScalable Streaming System)、Twitter 開發(fā)的 Strom、商用平臺 StreamBase、Facebook 的流處理系統(tǒng)Puma等;國內也有很多類似的系統(tǒng),包括Baidu下一代數(shù)據(jù)流系統(tǒng)DStream、淘寶實時流式數(shù)據(jù)分析平臺Beatles等。這些分布式系統(tǒng)能夠顯著的提高數(shù)據(jù)的處理能力、降低數(shù)據(jù)的處理延遲。
[0004]低延遲海量數(shù)據(jù)流處理的新需求,給任務與節(jié)點之間的調度與資源分配帶來了新的挑戰(zhàn),目前主流實時云平臺存在以下一些問題:
[0005]1、現(xiàn)有的實時云平臺,如Twitter的Storm,把任務作為獨立的單元進行分配,未考慮任務間的相互關系,而實際從提高平臺效率的角度考慮,相互關聯(lián)的任務應該被分配到相同或相鄰節(jié)點上;
[0006]2、現(xiàn)有的實時云平臺只考慮了任務的CPU、內存的使用情況,未考慮任務之間的通信量,以及任務的上下游關系;
[0007]3、現(xiàn)有的實時云平臺只考慮了初始或靜態(tài)的分配問題,而忽略了平臺是開放的、任務和節(jié)點是動態(tài)變化的這一重要特征,平臺運行過程中的分配策略將成為限制其效率的
重要因素;
[0008]4、經(jīng)典的多核任務分配算法復雜度較高,在核數(shù)少、任務量少的情況下具有優(yōu)勢,而云平臺的數(shù)據(jù)量、任務量、節(jié)點規(guī)模都超越了傳統(tǒng)算法的處理范圍,從而使得實時云平臺的分配算法緊迫而必要。
[0009]綜上所述,我們需要一種時間復雜度低、能滿足實時云平臺動態(tài)計算、適用云環(huán)境動態(tài)變化等情況的任務調度和資源分配算法,以提高云平臺的任務分配效率和資源利用率。
【發(fā)明內容】
[0010]本發(fā)明所要解決的技術問題是針對現(xiàn)有技術的不足,提供一種面向實時云平臺的任務調度與資源分配方法及系統(tǒng),其時間復雜度低、能滿足實時云平臺動態(tài)計算、適用云環(huán)境動態(tài)變化等情況的任務調度和資源分配,能有效提高云平臺的任務分配效率和資源利用率。
[0011]本發(fā)明解決上述技術問題的技術方案如下:一種面向實時云平臺的任務調度與資源分配方法,包括如下步驟:
[0012]步驟1:全局狀態(tài)存儲模塊獲取云平臺的運行狀況,將運行狀況上報給全局狀態(tài)監(jiān)控模塊;
[0013]步驟2:全局狀態(tài)監(jiān)控模塊根據(jù)運行狀況,利用任務分配矩陣ST、任務鄰接矩陣TT和掩碼矩陣TTM制定相應的調度策略;
[0014]步驟3:根據(jù)調度策略在實時云平臺中進行節(jié)點驅動型和/或任務驅動型任務調度與資源分配。
[0015]本發(fā)明的有益效果是:
[0016]1、分配任務時充分考慮任務之間的關系、降低節(jié)點之間的通信量、減少帶寬壓力,從而提聞平臺性能;
[0017]2、很好的適應云平臺動態(tài)調度的各種情況,保證云平臺在運行過程中時刻保持較高的計算性能和資源利用率;
[0018]3、計算復雜度低,適合在具有大規(guī)模節(jié)點和大任務量的云環(huán)境中部署使用。
[0019]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0020]進一步,所述任務分配矩陣ST為n行m列的矩陣,行表示節(jié)點,列表示任務,
[0021]
【權利要求】
1.一種面向實時云平臺的任務調度與資源分配方法,其特征在于,包括如下步驟: 步驟1:全局狀態(tài)存儲模塊獲取云平臺的運行狀況,將運行狀況上報給全局狀態(tài)監(jiān)控模塊; 步驟2:全局狀態(tài)監(jiān)控模塊根據(jù)運行狀況,利用任務分配矩陣ST、任務鄰接矩陣TT和掩碼矩陣TTM制定相應的調度策略; 步驟3:根據(jù)調度策略在實時云平臺中進行節(jié)點驅動型和/或任務驅動型任務調度與資源分配。
2.根據(jù)權利要求1所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于, 所述任務分配矩陣ST為n行m列的矩陣,行表示節(jié)點,列表示任務,
3.根據(jù)權利要求1所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,步驟3中,所述節(jié)點驅動型任務調度與資源分配情況包括新增節(jié)點、節(jié)點過載、節(jié)點巖機和節(jié)點計劃移除的情況; al.針對新增節(jié)點的情況,具體實現(xiàn)為在任務分配矩陣ST中新增一行,對應的元素置零; a2.針對節(jié)點過載的情況,具體實現(xiàn)為選擇目的節(jié)點,將過載節(jié)點上選擇的待遷移任務遷移到目的節(jié)點上,同時對應修改任務分配矩陣ST和掩碼矩陣TTM, 其中,選擇目的節(jié)點滿足條件為,目的節(jié)點未過載;過載節(jié)點和目的節(jié)點間連接數(shù)最大; 選擇過載節(jié)點上待遷移任務滿足條件為,選擇因該任務遷移而出現(xiàn)的內連接變成外連接的數(shù)目減去因該任務遷移而出現(xiàn)的外連接變成內連接數(shù)目的值最小的; a3.針對節(jié)點巖機的情況,具體實現(xiàn)是為巖機節(jié)點上的每個任務選擇目的節(jié)點,將巖機節(jié)點上的任務依次遷移到對應的目的節(jié)點上,同時對應修改任務分配矩陣ST和掩碼矩陣TTM ; 其中,選擇目的節(jié)點滿足的條件為,使待遷移任務與對應的目的節(jié)點的外連接數(shù)最多;a4.針對節(jié)點計劃移除的情況,具體實現(xiàn)為將待移除節(jié)點的任務分配標志位置成不可分配新任務狀態(tài),然后等待該節(jié)點上的所有任務運行結束,移除該節(jié)點,且該節(jié)點在任務分配矩陣ST中對應行的元素全部為O,將該行移除。
4.根據(jù)權利要求3所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,針對節(jié)點過載的情況,選擇目的節(jié)點具體條件如下,
At X Msd X A+AT X Mds X A ^ At X Msk X A+AT X Mks X A
k G [I, n], A=[l…1]T 其中,Msd表示過載節(jié)點ns向目的節(jié)點nd發(fā)出連接的情況,Mds表示目的節(jié)點nd向過載節(jié)點ns發(fā)出連接的情況,Msk表示過載節(jié)點ns向節(jié)點nk發(fā)出連接的情況,Mks表示節(jié)點nk向節(jié)點ns發(fā)出連接的情況,節(jié)點nd和節(jié)點nk均為未過載節(jié)點。
5.根據(jù)權利要求3所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,針對節(jié)點過載的情況,選擇過載節(jié)點ns上待遷移任務的具體條件如下:
Mss (p,:) XA+AtXMss(: , p) -Mds (:,p) XA-AtXMsd (p,:)
≤ Mss (k,:) XA+AtXMss(:,k)-Mds(:,k) XA-AtXMsd(k,:)
Vk t<K€7is,A = [I --? l]1其中,Mss (p,:)表示任務tp向過載節(jié)點ns上其他任務發(fā)出內連的接情況,Mss (:,p)表示節(jié)點ns上其他任務向任務tp發(fā)出內連接的情況,Msd(p,:)表示任務tp向節(jié)點nd上任務發(fā)出外連接的情況;Mds(: ,p)表示節(jié)點nd上任務向過載節(jié)點上的任務tp發(fā)出外連接情況,Mss(p,:)XA+AtXMss(:,p)表示因任務tp遷移而出現(xiàn)的內連接變成外連接的數(shù)目,Mds (:,p)XA+ATXMsd(p,:)表示因任務tp遷移而出現(xiàn)的外連接變成內連接的數(shù)目; 同理,不等式右側代表因遷移任務tk而出現(xiàn)的內連接變成外連接與外連接變成內連接的差值。
6.根據(jù)權利要求1所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,針對節(jié)點宕機的情況,為宕機節(jié)點ns上每個任務選擇目的節(jié)點nd具體滿足的條件為,
Msd (p,:) XA+ATXMds(:,p)≥ Msi (p,:) XA+ATXMis(:,p)
A = [I --? I]7" 其中,Msd(p,:)表示需要遷移的任務tp向目的節(jié)點nd上任務的發(fā)出外連接情況;Mds(:,P)表示目的節(jié)點nd上任務向需遷移的任務tp發(fā)出外連接的情況,Msd(p,:) XA+ATXMds(:,p)為任務tp與目的節(jié)點nd上任務的外連接總數(shù);Msi (p,:)表示需要遷移的任務tp向節(jié)點Hi上任務的發(fā)出外連接情況;Mis(:,p)表示節(jié)點Ili上任務向需遷移的任務tp發(fā)出外連接的情況,Msi (p,:) XA+ATXMis(:,p)為任務tp與節(jié)點Iii上任務的外連接總數(shù); 選擇與待遷移的任務tp連接數(shù)最多的節(jié)點作為任務tp的目的節(jié)點,將任務tp遷移至目的節(jié)點nd,移除分配矩陣ST中tp對應的列向量,形成新的矩陣。
7.根據(jù)權利要求1所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,步驟3中,所述任務驅動型任務調度與資源分配情況包括新增任務、任務正常結束、任務異常中斷和任務主動遷移; bl.針對新增任務的情況,具體實現(xiàn)為利用任務鄰接矩陣TT計算與新增任務總連接數(shù)最多的節(jié)點作為目的節(jié)點,將新增任務分配給計算所得的目的節(jié)點,同時對應修改任務分配矩陣ST、任務鄰接矩陣TT和掩碼矩陣TTM ; b2.針對任務正常結束的情況,具體實現(xiàn)為任務分配矩陣ST移除正常結束的任務對應的列,移除任務鄰接矩陣TT中對應的行和列,修改掩碼矩陣TTM對應的元素; b3.針對任務異常中斷的情況,具體實現(xiàn)為首先重新執(zhí)行該任務,如果仍然出現(xiàn)異常中斷,將該任務放到任務隊列中,等待重新分配,同時對應修改任務分配矩陣ST、任務鄰接矩陣TT和掩碼矩陣TTM ; b4.針對任務主動遷移的情況,具體實現(xiàn)為直接將待遷移的任務遷移到用戶指定的目的節(jié)點,同時對應修改任務分配矩陣ST、任務鄰接矩陣TT和掩碼矩陣TTM。
8.根據(jù)權利要求1所述一種面向實時云平臺的任務調度與資源分配方法,其特征在于,針對新增任務的情況,為新增任務tnOT選擇目的節(jié)點nd的具體條件為,
9.一種實現(xiàn)權利要求1-8所述任一面向實時云平臺的任務調度與資源分配方法的系統(tǒng),其特征在于,包括客戶端、全局狀態(tài)監(jiān)控模塊、全局狀態(tài)存儲模塊和若干個工作節(jié)點; 所述客戶端,其用于提交任務到全局狀態(tài)存儲模塊相應的路徑下,供各工作節(jié)點獲取相應任務; 所述全局狀態(tài)存儲模塊,其用于獲取各工作節(jié)點的運行狀況,將運行狀況上報給全局狀態(tài)監(jiān)控模塊; 所述全局狀態(tài)監(jiān)控模塊,其用于根據(jù)上報的運行狀況,利用任務分配矩陣、任務鄰接矩陣和掩碼矩陣制定相應的調度策略,并根據(jù)調度策略進行節(jié)點驅動型和任務驅動型任務調度與資源分配; 所述工作節(jié)點,其用于獲取相應任務并執(zhí)行。
10.根據(jù)權利要求9所述一種面向實時云平臺的任務調度與資源分配系統(tǒng),其特征在于,所述全局狀態(tài)監(jiān)控模塊包括任務分配矩陣單元、任務鄰接矩陣單元和掩碼矩陣單元; 所述任務分配矩陣單元,其用于建立并修改任務分配矩陣,所述任務分配矩陣用于表示任務與工作節(jié)點間的對應關系; 所述任務鄰接矩陣單元,其用于建立并修改任務鄰接矩陣,所述任務鄰接矩陣用于表示任務間的連接關系; 所述掩碼矩陣單元,其用于建立并修改掩碼矩陣,所述掩碼矩陣用于表示單個節(jié)點上任務間的內連接關系。
【文檔編號】H04L29/08GK103812949SQ201410080647
【公開日】2014年5月21日 申請日期:2014年3月6日 優(yōu)先權日:2014年3月6日
【發(fā)明者】張闖, 陳蒙蒙, 李釗, 徐克付 申請人:中國科學院信息工程研究所