專利名稱:一種基于元調度環的多集群作業調度方法
技術領域:
本發明屬于數據處理領域,涉及一種作業調度方法,具體涉及一種基于元調度環的多集 群作業調度方法。
背景技術:
目前許多組織都購買了集群用于科學研究,伹各個組織的集群利用率存在較大的差異, 存在某些集群資源閑置而某些還不能滿足用戶的計算需求等情況,有的集群利用率較高,有 的集群則利用率較低。如果將多個集群聯合起來作為一個整體為用戶提供計算服務,則可以 提供強大的計算能力來滿足更多的用戶計算需求。
環形網絡通過一個連續的環將各個終端連接在一起,傳輸媒體從一個端用戶到另一個端 用戶,直到將所有端用戶連成環型。這種結構消除了端用戶通信時對中心系統的依賴性。環 行結構使每個端用戶與前端點用戶和后端點用戶相連,因而存在著點到點鏈路,并以單向方 式操作,環上傳輸的任何信息都必須穿過所有端點。
P2P網絡是覆蓋在IP網絡之上的覆蓋網絡,根據拓撲結構的關系可以將P2P網絡分為 3種形式中心化拓撲、全分布式非結構化拓撲、全分布式結構化拓撲。中心拓撲系統采用 目錄服務器的方式實現,容易造成單點故障,訪問的"熱點"現象等相關問題;全分布式非 結構化拓撲系統采用隨機圖的組織方式,此類系統中的路由算法都類似于廣播式的搜索算法, 因此產生大量的網絡信息,給網絡帶來巨大負擔;全分布式結構化拓撲系統采用正則圖的組 織方式,維護一定大小的路由表,此類系統的維護機制復雜,維護代價直接依賴于路由表的 大小。
集中式作業調度+莫式下,多集群系統中有一個負責調度的主機(元調度器)負責搜集系 統的負載信息。它維護著一個任務分配表,并根據系統負載情況來分配任務。首先,元調度 器需要維護所有集群節點的資源信息和作業信息,所以當需要管理的集群節點數逐漸增加時, 作業跟資源之間的匹配過程將會變得更加復雜,這樣元調度器需要處理的信息量就會變大, 調度算法的復雜度也將變高,其負擔將變的越繁重,此時元調度器將成為整個系統的瓶頸。 其次,在元調度器收集所有集群節點信息的時候,集群節點需要等待,浪費了集群節點的處 理能力。最后,集中式調度模式中所有的信息都存儲在元調度器上,所有的調度決策也都是 由元調度器做出的,元調度器是整個系統的核心,當元調度器出現故障時,整個系統都將處 于崩潰狀態不能繼續進行工作。 元調度是建立在集群本地調度機制之上的調度,元調度器負責在多個集群中調度任務, 每個集群都有自己獨立的調度解決方案。元調度器可以創建一個網格層次結構,其中每個組 件都利用相同的調度解決方案。元調度器也可以用來鏈接使用不同調度器的組件,從而對系 統用戶屏蔽這些差異。
多個集群通過前、后節點連接建立的環形結構稱之為元調度環,當元調度環上只有一個 集群節點時,需要建立一個只有單個集群節點的元調度環。該集群節點的前節點和后節點都 是該集群節點本身。
多集群節點的元調度環的建立過程是在單集群節點元調度環的基礎上完成的。新加入的 集群節點通過向元調度環上某個集群節點(連接節點)發送加入環的消息,連接節點將自己 的前節點設為新加入的集群節點,同時將自己原有的前節點信息封裝到響應消息中返回給新 加入的集群節點。新加入的集群節點收到連接節點返回的響應消息后,將自己的后節點設為 連接節點,同時解析出響應消息中連接節點的原有前節點信息,然后向連接節點的原有前節 點發送加入環的消息。原有前節點收到該消息后,將自己的后節點設為新加入的集群節點, 同時發送相應的響應消息給新加入的集群節點。新加入的集群節點收到原有前節點的響應消 息后,將自己的前節點設為原有前節點。這樣新加入的集群節點就加入到元調度環中,它可 以接收從前節點發送過來的消息,同時也可以給它的后節點發送消息。 發明 內 容
本發明提出了一種基于元調度環的多集群作業調度方法。該方法基于多集群間建立的元 調度環,通過發送添加作業的消息將作業添加到多個集群上,并發送取消作業的消息來決定 運行該作業的集群,從而完成作業在多集群間的調度。本方法將作業插入元調度環上的多個 集群本地隊列中,增加作業被調度的機會,提高集群資源的利用率,避免單點失效、網絡負 擔過重等問題,并具有良好的可擴展性。
一種基于元調度環的多集群作業調度方法,該方法包括如下步驟
步驟1:元調度環上的作業主節點接收到用戶的作業請求,并根據作業請求生成作業添 加消息;
步驟2:作業主節點的本地資源匹配器根據作業添加消息判斷作業主節點的資源是否能 夠滿足作業描述信息中的需求,如果能,則由作業主節點的本地調度器判斷作業主節點的本 地隊列中有無其他作業,如果無,則作業主節點開始執行該作業,并將作業調度結果返回給 用戶,本方法結束;否則將作業添加到作業主節點的本地隊列中,將作業添加消息沿元調度
環轉發至下一集群節點;如果作業主節點的資源不能夠滿足作業描述信息中的需求,則將作 業添加消息沿元調度環轉發至下一集群節點;
步驟3:元調度環上的下一集群節點接收到作業添加消息后,集群節點的本地資源匹配
器根據作業添加消息判斷集群節點的資源是否能夠滿足作業描述信息中的需求,如果能,則 由該集群節點的本地調度器判斷該集群節點的本地隊列中有無其他作業,如果無,則此集群 節點能立即執行該作業,則轉到步驟5;否則該集群節點將作業添加到本地作業隊列中,將 作業添加消息沿元調度環轉發至下一集群節點;如果集群節點的本地資源匹配器判斷集群節 點的資源不能夠滿足作業描述信息中的需求,則將作業添加消息沿元調度環轉發至下一集群 節點;
步驟4:元調度環上的集群節點通過本地調度器判斷本地作業隊列中是否有要執行的作 業,如果有,則轉到步驟5;否則繼續等待直至有作業要執行;
步驟5:此集群節點創建作業取消消息,并沿元調度環轉發作業取消消息,通知其他本 地隊列中含有該作業的集群節點取消該作業的執行;
步驟6:要執行作業的集群節點收到返回的作業取消消息后,解析該消息中的作業運行 標識字段,如果元調度環上有運行該作業權限更髙的集群節點,則不執行該作業,由作業禾又
限更高的集群節點發送的取消作業消息將該作業取消;否則集群節點開始執行作業,并將作
業調度結果返回給用戶。
所述的步驟l、 2、 3中,作業添加消息將作業添加到元調度環上的多個集群節點。作業 添加消息結構包括消息類型、作業ID、用戶ID、作業主節點名稱、添加作業標識、作業 添加節點列表、作業JSDL描述;消息中作業添加節點列表為可變長數組結構,其余各字段 為可變長字符串結構且之間用空格來劃分。
所述的步驟5中,作業取消消息取消了作業在元調度環上其他集群節點的執行,完成作 業的調度,作業取消消息結構包括消息類型、作業ID、消息源節點、作業運行權值、作業 運行標識;消息中各字段為可變長字符串且之間用空格來劃分。
所述步驟5中集群節點取消該作業的執行,包括如下步驟
a) 集群節點解析前節點發送的作業取消消息,如果該集群節點的作業ID與解析得到的 消息源節點的字段內容相同,則此集群節點判斷自己是否能執行該作業,如果能,則該集群 節點運行該作業,否則,該作業將由其他權限更高的集群發送的作業取消消息取消;作業取 消消息過程結束;如果當前集群節點的ID與解析得到的消息源節點的字段內容不同,轉b);
b) 根據解析得到的作業ID查找該集群節點的本地隊列,如果本地隊列中沒有此作業, 則此集群節點轉發該作業取消消息到下一集群節點,轉a);否則轉c);
c) 如果該集群節點運行此作業的權值大于解析出的作業運行權值,則將作業取消消息的 作業運行標識字段設為no,反之則把此作業從該集群節點的本地隊列中刪除;然后轉發該作 業取消消息到后節點,轉a)。
本發明一種基于元調度環的多集群作業調度方法優點在于
(1) 提高作業響應比本發明采用將作業插入到多個集群本地隊列,增加作業被調度的 機會,減少作業的等待時間,提高作業的響應比。
(2) 提髙集群利用率:本發明采用多請求的方式使得作業能夠在集群之間自動進行調度, 提高各集群資源的利用率。
(3) 可擴展性好本方法采用元調度環結構作為方法的實現載體,這樣元調度環上的各 集群節點間的連接和集群節點的關系變成線性,從而使整個系統更加容易擴展。
(4) 避免單點失效本方法由于組成元調度環的各個集群節點都相對獨立,各集群節點 可以通過本地調度來獨立完成調度工作,不會出現某個集群節點失效而導致整個系統無法運 行的問題。
圖1為本發明一種基于元調度環的多集群作業調度方法的結構關系圖2為本發明一種基于元調度環的多集群作業調度方法的步驟流程圖3為本發明一種基于元調度環的多集群作業調度方法的作業添加消息消息格式圖4為本發明一種基于元調度環的多集群作業調度方法的作業取消消息消息格式圖5為本發明一種基于元調度環的多集群作業調度方法的作業取消流程圖。
具體實施例方式
下面將結合附圖和實施例對本發明作進一步的詳細說明。
本發明一種基于元調度環的多集群作業調度方法的運行平臺為一個基于元調度環的多集 群系統,如圖1所示
本實施例中,多集群系統由5個集群節點組成,每個集群節點包括1 4個管理主機節 點和8 128個計算主機節點,5個集群節點的ID分別為C0000001 C0000005,集群 節點之間通過千兆以太網互聯,形成元調度環結構。每個集群節點包括一個長度為256的集 群本地隊列、 一個集群本地資源匹配器和一個集群本地調度器。集群節點接收到作業添加請 求消息時,如果該集群節點的本地資源匹配器判定可以由該集群節點處理該作業,則將作業 添加到集群節點的本地隊列中,由集群節點的本地調度器進行調度執行;否則,該集群節點 將不處理該作業。
集群節點在元調度環的建立和維護過程時,需要有如下一些參數來完成元調度環的建立 和維護過程。這些信息包括
前節點(PreviousNode):該集群節點在環上前一個集群節點的主機名稱,例如,集 群C0000001是集群C0000002的前節點。
參后節點(NextNode):該集群節點在環上下一個集群節點的主機名稱。例如,集群 C0000002是集群C0000001的后節點。
本發明提出了一種基于元調度環的多集群間的作業調度方法,如圖2所示,該方法包括 如下步驟
步驟1:元調度環上的某集群節點,即作業主節點接收到用戶的作業請求時,生成作業
添加消息。
多集群形成元調度環后,用戶就可以通過該元調度環向這個系統中添加作業,用戶在添 加作業時,可以隨機選擇元調度環上的任何一個集群節點作為元調度環的入口。元調度環上 第一個接收到作業的集群節點將被稱為該作業的作業主節點。作業ID為一個隨機生成的 UUID,作業請求中的作業描述采用GGF組織定義的作業提交描述語言JSDL(Job Submission Description Language)。
用戶 special通過集群節點 C0000001 提交 一 個作業ID為 41e54b37-c01a陽431d-97ef-fead95e2c271的作業請求。作業主節點C0000001生成該 作業的作業添加消息,并將該消息的JobMasterID設置為自己的名稱,同時將AddAction 字段置為Yes。格式如圖3所示
* MsgType:消息類型,String類型,添加新作業時,該字段置為AddJob。
* JobID:作業ID, String類型, 一個隨機生成的36位UUID,它用來唯一標識一 個作業。
* UserID:用戶ID, String類型,表示提交作業的用戶ID。
* JobMasterNode:作業主節點名稱,String類型,表示作業進入元調度環的入口集 群節點名稱。
* AddJob:添加作業標識,String類型,如果AddJob為YES,接收到該消息的集 群節點將對該消息進行處理,即將作業添加到該集群節點所在的集群本地系統中。如果 AddJob為NO,表明之前已經有集群節點要開始運行該作業了,不需要再對該作業進行處理。
* ToRunNode:作業添加節點列表,List類型,當一個集群節點決定接收該作業時, 需要修改ToRunNode字段,將自己的節點名稱加到該字段中去,這樣當該消息繞環一周返 回時,系統可以知道該作業被添加到環上的哪些集群節點上。
* JSDL:作業JSDL描述信息,String類型,用來跟集群資源進行匹配,判斷集群節
點是否能運行該作業;以及,當接收該作業的集群節點準備運行該作業時,將從該消息中解 析出該字段的內容,然后按照該字段的內容運行該作業。
步驟2:作業主節點的本地資源匹配器根據作業添加消息對作業主節點資源進行判別, 并根據作業主節點的資源情況對作業添加消息進行處理。
本實施例中作業根據作業主節點C0000001的情況進行調度。作業主節點C0000001
的本地資源匹配器根據作業添加消息判斷作業主節點cooooooi的資源是否能夠滿足作業 描述信息中的需求,如果作業主節點cooooooi的資源能夠滿足作業描述信息中的需求,則 作業主節點cooooooi會接收下該作業,并將該作業轉交給本地的集群調度器。
由于大部分時刻用戶提交作業的集群節點通常是執行該作業的最佳節點,因此作業添加
到作業主節點cooooooi的本地調度器后,將決定是將該作業立即投入運行,還是需要將作 業放入本地隊列中進行等待。作業主節點cooooooi的本地調度器判斷作業主節點
COOOOOOI 的本地隊列中沒有其他作業,則運行該 ID 為 41e54b37-c01a-431d-97ef-fead95e2c271的作業,并向用戶匯報調度結果;由于該作業
添加請求將不在元調度環上傳遞,提高了作業的響應比以及減少元調度環上的網絡通信負擔, 整個方法結束;如果作業主節點COOOOOOI不能立即執行該作業,則把作業主節點的ID COOOOOOI添加到作業添加消息ToRunNo《e字段中,并將作業添加到作業主節點 COOOOOOI的本地P人列中。
如果作業主節點COOOOOOI的集群資源不能夠滿足作業描述文件JSDL字段中的作業 描述信息中的需求,將作業添加消息轉發至后節點C0000002。
步驟3:被作業主節點轉發的集群節點接到作業添加消息后,本地資源匹配器根據作業 添加消息對該集群節點的資源進行判別,并根據該集群節點的資源情況對作業添加消息進行 處理。
該集群節點的元調度環上的集群節點接收到作業添加消息后,集群節點的本地資源匹配 器根據作業添加消息判斷該集群節點的資源是否能夠滿足作業描述信息中的需求,如果能, 則由該集群節點的本地調度器判斷該集群節點的本地隊列中有無其他作業,如果無,則此集 群節點能立即執行該作業,則轉到步驟5;否則該集群節點將作業添加到本地作業隊列中等 待;將作業添加消息沿元調度環轉發至下一集群節點,如果該集群節點的資源不能夠滿足作 業描述信息中的需求,則將作業添加消息沿元調度環轉發至下一集群節點。
本實施例中,元調度環上的集群節點C0000002接收到作業添加消息(AddJob)后,解 析該消息,先通過JobMasterNode字段值COOOOOOI,判斷集群節點C0000002是否為 作業的作業主節點如果是,說明添加作業的消息繞環一圈又回到作業的作業主節點,不需 要重新添加該作業,接著解析消息中的ToRunNode字段,向用戶返回作業被添加到哪些集 群的本地隊列中;如果不是,本實施例中則由集群節點C0000002的本地資源匹配器根據作 業添加消息判斷集群節點C0000002的資源是否滿足該作業描述信息JSDL中的需求,如 果能,則將由集群節點C0000002的集群本地調度器判斷該集群節點C0000002的本地隊 列中有無其他作業,如果無,則說明集群節點C0000002能立即執行該作業,則轉到步驟5; 否則該集群節點COOOOOQ2將作業添加到本地作業隊列中,并將作業添加消息沿元調度環轉
發至后節點集群節點C000003。
本實施例中,集群節點C0000002開始執行該作業時,將AddJob字段設為no,當后 續的集群節點C0000003收到該作業添加消息之后,查看消息的AddJob字段的內容,發 現該字段為no,說明該作業在集群節點COOOOOOl或C0000002上已經準備開始運行,不 需要再接收該作業,并不對該作業添加消息進行任何操作。
如果該作業被放入集群節點C0000002的本地隊列中等待,則把該節點的ID追加到作 業添加節點列表ToRunNode字段的末端。
如果集群節點C0000002的本地資源匹配器根據作業添加消息判斷該集群節點 C0000002的資源不能夠滿足作業描述信息JSDL中的需求將作業添加消息沿元調度環轉發 至后節點集群節點C0000003,并由集群節點C0000003處理。
步驟4:元調度環上的集群節點通過本地調度器,判斷本地作業隊列中是否有要執行的 作業,如果有,轉步驟5;否則繼續等待直至有作業要執行。
本實施例中,元調度環上的集群節點C0000003通過本地調度器,判斷本地作業隊列中 是否有要執行的作業,如果有,轉步驟5;否則繼續等待直至有作業要執行。
步驟5:要執行作業的集群節點創建作業取消消息,并沿元調度環轉發作業取消消息, 通知其他集群節點取消該作業的執行;
當某個集群節點要運行某作業時,首先向其他節點發送取消該作業的消息,當消息在元 調度環上傳遞一圈返回該集群節點,且元調度環上沒有作業運行權值更高的集群節點也要運 行此作業時,該節點才真正開始運行此作業。
元調度環上發送取消作業消息主要包括兩種情況
1) 作業在添加過程中,集群節點收到作業添加消息時,由集群節點的本地調度器判斷該 集群節點的本地隊列中沒有其他作業,集群節點在運行該作業前,該集群節點將發送作業取 消消息,取消該作業在其他節點上的排隊;
2) 集群節點上的某個作業從排隊狀態變為運行狀態,該節點在運行該作業之前將向后節 點發送作業取消消息,并由后節點沿元調度環依次轉發下去,取消該作業在其他節點上的排 隊。
本實施例中,在集群節點C0000004的本地作業隊列中有作業ID為 41e54b37-c01a-431d-97ef-fead95e2c271由排隊狀態變為運行狀態,集群節點 C0000004的本地調度器給出運行該作業的權值為200。在運行該作業前,集群節點 C0000004生成該作業的作業取消消息,則將該消息的SourceNode設置為自己的名稱, Weight值設為200,同時將Result字段置為Yes,說明該集群節點C0000004可以運行 作業41e54b37-cOla-431d-97ef-fead95e2c271,這時如果有權限更髙的集群節點假設為集群節點C0000002,則權限更高的集群節點C0000002將會把該消息的Result字段設為 no。格式如圖4所示
* Ms^Type:消息類型,String類型;本實施例中,取消作業時,字段設為CancelJob。
* JobID:作業ID, String類型,表示要刪除作業的ID,為一個隨機生成的36位 UUID,唯一標識一個作業。
SourceNode:消息源節點,String類型,表示發出該消息的集群節點名稱。
* Weight:作業運行權值,String類型,表示發送取消作業消息的集群節點根據特定 計算方法得出的運行此作業的權值,當元調度環上有多個集群節點發出取消其他節點上該作 業的消息時,由權值大的集群節點來運行該作業。在集群節點的本地隊列中等待的集群節點 權值為-m
* Result:作業運行標識,String類型,如果元調度環上有權值更高的集群節點也要 運行此作業時,權值更高的節點將此字段設為no, SourceNode則不運行該作業,且 SourceNode上的該作業也會被權限更高的集群節點所發送的取消作業消息而取消。初始值 為yes。
集群節點收到其他集群節點發送的取消作業消息后的處理流程如圖5所示
1) 集群節點收到前節點發送的作業取消消息(CancelJob)后,先解析該作業取消消息, 如果該集群節點的ID與解析得到的SourceNode字段內容相同,則說明發送的作業取消消 息沿元調度環環繞一圈又回到發送該取消消息的集群節點,這時此集群節點將根據解析作業 取消消息中的Result判斷自己是否能執行該作業,如果能,則該集群節點運行該作業,否則, 該集群節點上的該作業將由權限更高的集群發送的作業取消消息取消,該作業取消消息轉發 結束。如果當前集群節點的ID.與解析得到的SourceNode字段內容不同,轉2)。
2) 根據解析作業取消消息得到的JobID査找該集群節點的本地隊列,如果本地隊列中 沒有此作業,則此集群節點轉發該作業取消消息到下一集群節點,轉l);如果本地隊列中有 此作業,轉3)。
3) 該集群節點判斷運行此作業權值是否大于作業取消消息中解析出的Weight值,如果 該集群節點運行此作業的權值大于解析出的Weight值,則將作業取消消息中的Result字段 設為no,表示發送該作業取消消息的集群節點將不能運行該作業,然后轉發該作業取消消息 到后節點,轉l);如果該集群節點運行此作業的權值不大于解析出的Weight值,則把此作 業從該集群節點的本地隊列中刪除,然后轉發該作業取消消息到后節點,轉l)。
步驟6:要執行作業的集群節點收到返回的作業取消消息后,對該作業取消消息進行處 理,判斷應取消該集群節點中的作業還是應由該集群節點執行該作業,并將作業調度結果返 回給用戶,本方法結束。 集群節點收到返回的作業取消消息后,解析該作業取消消息,得到運行標識字段Result 的值,如果Result字段值為yes,說明該集群節點能夠開始運行該作業,即表明元調度環上 沒有比該集群節點運行此作業權值更高的集群節點,并在整個元調度環的作業取消消息傳遞 過程中,元調度環上其他所有集群節點隊列中的此作業已被取消,于是此集群節點開始執行 此作業,并將執行結果返回給用戶。如果Result字段值為no,說明元調度環上還有權值 Weight更高的集群節點將要運行此作業,則流程結束,且此集群節點上的此作業也會被權值 Weight更高的集群節點所發送的取消作業消息取消。
權利要求
1、一種基于元調度環的多集群作業調度方法,其特征在于,包括如下步驟步驟一元調度環上的作業主節點接收到用戶的作業請求,并根據作業請求生成作業添加消息;步驟二作業主節點的本地資源匹配器根據作業添加消息判斷作業主節點的資源是否能夠滿足作業描述信息中的需求,如果能,則由作業主節點的本地調度器判斷作業主節點的本地隊列中有無其他作業,如果無,則作業主節點開始執行該作業,并將作業調度結果返回給用戶,本方法結束;否則將作業添加到作業主節點的本地隊列中,將作業添加消息沿元調度環轉發至下一集群節點;如果作業主節點的資源不能夠滿足作業描述信息中的需求,則將作業添加消息沿元調度環轉發至下一集群節點;步驟三元調度環上的下一集群節點接收到作業添加消息后,集群節點的本地資源匹配器根據作業添加消息判斷集群節點的資源是否能夠滿足作業描述信息中的需求,如果能,則由該集群節點的本地調度器判斷該集群節點的本地隊列中有無其他作業,如果無,則此集群節點能立即執行該作業,則轉到步驟五;否則該集群節點將作業添加到本地作業隊列中,將作業添加消息沿元調度環轉發至下一集群節點;如果集群節點的本地資源匹配器判斷集群節點的資源不能夠滿足作業描述信息中的需求,則將作業添加消息沿元調度環轉發至下一集群節點;步驟四元調度環上的集群節點通過本地調度器判斷本地作業隊列中是否有要執行的作業,如果有,則轉到步驟五;否則繼續等待直至有作業要執行;步驟五此集群節點創建作業取消消息,并沿元調度環轉發作業取消消息,通知其他本地隊列中含有該作業的集群節點取消該作業的執行;步驟六要執行作業的集群節點收到返回的作業取消消息后,解析該消息中的作業運行標識字段,如果元調度環上有運行該作業權限更高的集群節點,則不執行該作業,由作業權限更高的集群節點發送的取消作業消息將該作業取消;否則集群節點開始執行作業,并將作業調度結果返回給用戶。
2、 根據權利要求1所述一種基于元調度環的多集群作業調度方法,其特征在于所述的步 驟一中的作業添加消息,其結構包括消息類型、作業ID、用戶ID、作業主節點名稱、 添加作業標識、作業添加節點列表、作業JSDL描述;消息中作業添加節點列表為可變 長數組結構,其余各字段為可變長字符串結構且之間用空格來劃分。
3、 根據權利要求1所述一種基于元調度環的多集群作業調度方法,其特征在于所述的步 驟五中的作業取消消息取消了作業在元調度環上其他集群節點的執行,完成作業的調度; 其結構包括消息類型、作業ID、消息源節點、作業運行權值、作業運行標識;消息中 各字段為可變長字符串且之間用空格來劃分。 4、根據權利要求1所述一種基于元調度環的多集群作業調度方法,其特征在于所述步驟 五的集群節點取消該作業的執行,包括如下步驟a) 集群節點解析前節點發送的作業取消消息,如果該集群節點的作業ID與解析得 到的消息源節點的字段內容相同,則此集群節點判斷自己是否能執行該作業,如果能, 則該集群節點運行該作業,否則,該作業將由其他權限更高的集群發送的作業取消消息 取消;作業取消消息過程結束;如果當前集群節點的ID與解析得到的消息源節點的字段 內容不同,轉b);b) 根據解析得到的作業ID查找該集群節點的本地隊列,如果本地隊列中沒有此作 業,則此集群節點轉發該作業取消消息到下一集群節點,轉a);否則轉c);c) 如果該集群節點運行此作業的權值大于解析出的作業運行權值,則將作業取消消 息的作業運行標識字段設為no,反之則把此作業從該集群節點的本地隊列中刪除;然后 轉發該作業取消消息到后節點,轉a)。
全文摘要
本發明提出了一種基于元調度環的多集群作業調度方法。該方法基于多集群間建立的元調度環,將用戶提交到作業主節點的作業,由作業主節點通過發送添加作業的消息將作業添加到多個集群上、要執行作業的集群節點通過發送取消作業的消息并比較運行作業的權值來決定運行該作業的集群,避免多集群執行作業的沖突,從而完成作業在多集群間的調度。本發明提供的調度方法通過將作業插入元調度環上的多個集群本地隊列中,增加作業被調度的機會,提高集群資源的利用率,避免單點失效、網絡負擔過重等問題,并具有良好的可擴展性。
文檔編號H04L12/42GK101340423SQ20081011817
公開日2009年1月7日 申請日期2008年8月13日 優先權日2008年8月13日
發明者冰 于, 伊勝偉, 孫超赟, 峰 梁, 榮曉慧, 攀 鄧, 峰 陳, 馬世龍 申請人:北京航空航天大學