作業調度方法及裝置與流程
2023-05-27 07:02:01

本申請屬於數據處理技術領域,具體地說,涉及一種作業調度方法、裝置及系統。
背景技術:
在傳統的分布式系統中,分布式作業包括有限數量的任務(task),每一任務又劃分為多個任務切片(instance),作業運行時,由各個任務的任務切片進行數據處理。
任務切片被調度運行在分布式系統的計算節點中,而由於計算節點軟硬體配置各不相同,且運行的作業也各不相同,外界幹擾因素頗多,導致不同機器運行環境大不相同,且由於作業本身的原因或者機器上運行的大量作業互相作用的結果或者機器本身問題,往往會導致某些計算節點磁碟讀寫慢或系統負載高等問題,使得計算節點無法正常運行。如果這個時候再調度新的作業到這些計算節點上,不僅影響作業的運行進度,也會加重系統的負載,進而影響其他作業的運行。
因此,急需提供一種有效的作業調度方式,以規避掉無法正常運行的計算節點,提高作業運行效率。
技術實現要素:
有鑑於此,本申請所要解決的技術問題是提供了一種作業調度方法及裝置,有效實現了作業調度,提高了作業運行效率。
為了解決上述技術問題,本申請公開了一種作業調度方法,應用於分布式系統中,所述方法包括:
第一計算節點計算當前運行的任務切片的數據處理速率;
根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點;所述調度指令用於觸發所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行;其中,所述資源管理器部署在所述分布式系統中的任一個計算節點或中心節點中。
優選地,所述根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點包括:
根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間;
在所述處理時間大於預設時間時,生成調度指令發送至中心節點。
優選地,所述預設時間為重新調度所述任務切片在第二計算節點運行的重新調度時間;
所述在所述處理時間大於預設時間時,生成調度指令發送至中心節點包括:
在所述處理時間大於所述重新調度時間時,生成調度指令發送至中心節點。
優選地,所述第一計算節點計算當前運行的任務切片的數據處理速率包括:
第一計算節點記錄當前運行的任務切片在運行過程中,讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間;
根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率。
優選地,所述根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間包括:
根據所述數據處理速率,計算所述任務切片中未處理數據的讀數據時間以及寫數據時間;
計算所述任務切片中未處理數據的讀數據時間以及寫數據時間的和值, 作為所述當前運行的任務切片中未處理數據的處理時間。
優選地,所述根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率包括:
根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,按照如下計算公式計算所述任務切片的數據處理速率;
dataprocessspeed=(datasize1+datasize2)/(time1+time2);
其中,dataprocessspeed表示所述任務切片的數據處理速率;datasize1表示讀數據的數據量,time1表示讀數據時間;datasize2表示寫數據的數據量,time2表示寫數據時間。
一種作業調度方法,應用於分布式系統中,所述方法包括:
中心節點接收第一計算節點的調度指令;所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的;
中斷所述任務切片在所述第一計算節點中運行,
請求資源管理器重新調度所述任務切片在第二計算節點中運行。
一種作業調度方法,應用於分布式系統中,所述方法包括:
接收中心節點的調度請求;所述調度請求為所述中心節點接收第一計算節點的調度指令,中斷所述任務切片在所述第一計算節點中運行之後生成的,所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的;
重新調度所述任務切片在第二計算節點中運行。
一種作業調度裝置,包括:
速率計算模塊,用於計算當前運行的任務切片的數據處理速率;
調度請求模塊,用於根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點;所述調度指令用於觸發所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在 第二計算節點中運行;其中,所述資源管理器部署在所述分布式系統中的任一個計算節點或中心節點中。
優選地,所述調度請求模塊包括:
時間計算單元,用於根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間;
調度請求單元,用於在所述處理時間大於預設時間時,生成調度指令發送至中心節點。
優選地,所述所述預設時間為重新調度所述任務切片在第二計算節點運行的重新調度時間;
所述調度請求單元具體用於在所述處理時間大於所述重新調度時間時,生成調度指令發送至中心節點。
優選地,所述速率計算模塊包括:
第一計算單元,用於第一計算節點記錄當前運行的任務切片在運行過程中,讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間;
第二計算單元,用於根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率。
優選地,所述時間計算單元具體用於:
根據所述數據處理速率,計算所述任務切片中未處理數據的讀數據時間以及寫數據時間;
計算所述任務切片中未處理數據的讀數據時間以及寫數據時間的和值,作為所述當前運行的任務切片中未處理數據的處理時間。
優選地,所述第二計算單元具體用於:根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,按照如下計算公式計算所述任務切片的數據處理速率;
dataprocessspeed=(datasize1+datasize2)/(time1+time2);
其中,dataprocessspeed表示所述任務切片的數據處理速率;datasize1表示讀數據的數據量,time1表示讀數據時間;datasize2表示寫數據的數據 量,time2表示寫數據時間。
一種作業調度裝置,包括:
指令接收模塊,用於接收第一計算節點的調度指令;所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的;
運行中斷模塊,用於中斷所述任務切片在所述第一計算節點中運行,
調度觸發模塊,用於請求資源管理器重新調度所述任務切片在第二計算節點中運行。
一種作業調度裝置,包括:
請求接收模塊,用於接收中心節點的調度請求;所述調度請求為所述中心節點接收第一計算節點的調度指令,中斷所述任務切片在所述第一計算節點中運行之後生成的,所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的;
調度模塊,用於重新調度所述任務切片在第二計算節點中運行。
與現有技術相比,本申請可以獲得包括以下技術效果:
第一計算節點計算當前運行的任務切片的數據處理速率;並根據數據處理效率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點;由所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行;通過計算節點計算任務切片的數據處理速率,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
當然,實施本申請的任一產品必不一定需要同時達到以上所述的所有技術效果。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部 分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:
圖1是本申請實施例的一種作業調度方法一個實施例的流程圖;
圖2是本申請實施例的一種作業調度方法又一個實施例的流程圖;
圖3是本申請實施例的一種作業調度方法又一個實施例的流程圖;
圖4是本申請實施例的一種作業調度方法又一個實施例的流程圖;
圖5是本申請實施例的一種作業調度裝置一個實施例的結構示意圖;
圖6是本申請實施例的一種作業調度裝置又一個實施例的結構示意圖;
圖7是本申請實施例的一種作業調度裝置又一個實施例的結構示意圖;
圖8是本申請實施例的一種作業調度裝置又一個實施例的結構示意圖;
圖9是本申請實施例的一種分布式系統一個實施例的結構示意圖。
具體實施方式
以下將配合附圖及實施例來詳細說明本申請的實施方式,藉此對本申請如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
本申請技術方案主要應用於分布式系統中,分布式系統包括中心節點以及與中心節點連接的各個計算節點。
而分布式作業包括有限數量的任務,並且任務之間有一定的依賴關係,每一任務又劃分為多個任務切片,作業運行時,由各個任務的任務切片進行數據處理。任務切片被調度運行在分布式系統的計算節點中,
任務切片的調度運行由資源管理器進行控制,資源管理器可以部署在所述分布式系統中的任一個計算節點或中心節點中。
現有技術中,資源管理器雖然可以對任務切片進行調度分配,但是資源管理器是統一進行運行資源和任務切片的調度,主要根據計算節點的運行資源以及運行任務切片數量來決定是否分配任務切片。
而由於每個任務切片所需要的運行資源不同,資源管理器很難做到運行 資源和任務調度的雙均衡,所以可能導致計算節點上調度了較少的資源卻運行較多的任務,大量任務的運行會引起系統負載變高,導致運行效率變慢,使得計算計算節點無法正常運行,且計算節點無法正常運行可能有多種原因,比如機器的軟硬體配置、機器年久老化導致硬體出現問題等,資源管理器僅根據計算節點的運行資源和運行的任務切片進行作業調度,無法有效實現對作業的調度以保證作業運行效率。
為了解決這一技術問題,發明人經過一系列研究,提出本申請技術方案,在本申請實施例中,每一個任務切片在運行過程中,可以統計數據處理速率,並根據該數據處理處理效率,確定任務切片滿足調度條件時,此時表明當前運行該任務切片的計算節點可能負載較高或者出現其他問題,會影響作業運行效率,因此需要重新調度該任務切片,即可以通知中心節點,由中心節點中斷該任務切片的運行,並請求資源管理器重新調度。而任務切片不滿足調度條件,則該任務切片可以繼續運行。通過計算任務切片的數據處理速率,獲得計算節點的實際運行情況,從而可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
下面將結合附圖對本申請技術方案進行詳細描述。
圖1為本申請提供的一種作業調度方法一個實施例的流程圖,該方法主要應用於分布式系統中,該方法可以包括以下幾個步驟:
101:第一計算節點計算當前運行的任務切片的數據處理速率。
第一計算節點是指分布式系統中運行任務切片的任一個計算節點,為了方便描述上的區分,此處命名為第一計算節點。
任務切片被調度到第一計算節點中運行,第一計算節點在一個進程中運行該任務切片,具體通過該進程計算任務切片的數據處理速率
第一計算節點在運行任務切片時,需要讀數據、進行數據處理之後,在進行寫數據,因此可以根據讀數據以及寫數據的數據量和時間,計算數據處理速率。
計算數據處理速率可以實時進行,從而可以實時對第一計算節點進行判斷。
102:根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點。
其中,所述調度指令用於觸發所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行;其中,所述資源管理器部署在所述分布式系統中的任一個計算節點或中心節點中。
其中,作為一種可能的實現方式,所述調度條件可以是指所述數據處理速率小於預設速率。
所述根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點可以是:
根據所述數據處理速率,在所述數據處理速率小於預設速率時,生成調度指令發送至中心節點。
也即數據處理速率較低時,表明該第一計算節點可能負載較高,需要對任務切片進行重新調度。
作為又一種可能的實現方式,該調度條件可以是指未處理數據的處理時間大於預設時間。
因此所述根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點可以是:
根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間;
在所述處理時間大於預設時間時,生成調度指令發送至中心節點。
根據計算獲得的數據處理速率,以及未處理數據的數據量,即可以計算獲得未處理數據的處理時間。
該處理時間也是指計算節點處於該任務切片該需要運行的時間。
如果處理時間大於預設時間,表明第一計算節點可能負載較高或者出現其他影響正常運行的問題,此時應該重新調度該任務切片,而不是在第一計算節點中繼續運行,以保證作業運行效率,因此即可以生成調度指令發送至 中心節點。中心節點即中斷所述任務切片在第一計算節點中運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行。
該第二計算節點可以是資源管理器選擇的負載較低的一個計算節點。資源管理器可以根據各個計算節點的數據處理速率或者各個計算節點中未處理數據的處理時間,選擇數據處理速率高或者未處理數據的處理時間短的一個計算節點作為第二計算節點。
當然,資源管理器還可以選擇存在空閒運行資源的任一個計算節點作為第二計算節點。
另外,中心節點還可以對該第一計算節點進行禁用標記,終止對禁用標記的計算節點進行調度。
第一計算節點中的任務切片中斷之後,可以降低該第一計算節點的負載,從而有利於運行在該第一計算節點中的其它任務切片的運行,保持良好的運行狀態。
本實施例中,第一計算節點對當前運行的任務切片計算數據處理速率,根據獲得的數據處理速率可以進行判斷,如果任務切片滿足調度調度條件,即可以即可以通知中心節點,由中心節點中斷該任務切片的運行,並請求資源管理器重新調度。而如果處理時間小於預設時間,則該任務切片可以繼續運行。通過計算任務切片的數據處理速率,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖2為本申請提供的一種作業調度方法又一個實施例的流程圖,該方法主要應用於分布式系統中,該方法可以包括以下幾個步驟:
201:第一計算節點計算當前運行的任務切片的數據處理速率。
任務切片運行時,需要讀數據,並對讀取的數據進行處理之後,在進行寫數據。
因此根據讀數據和寫數據的數據量以及讀數據時間和寫數據時間,即可以計算獲得所述任務切片中未處理數據的處理時間。
因此,作為又一個實施例,該步驟201可以包括:
第一計算節點記錄當前運行的任務切片在運行過程中,讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間;
根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率。
其中,讀數據時間是指讀取所述讀數據的數據量所需的時間,寫數據時間是指寫入所述寫數據的數據量所需的時間。
具體的,根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,可以按照如下計算公式計算所述任務切片的數據處理速率;
dataprocessspeed=(datasize1+datasize2)/(time1+time2);
其中,dataprocessspeed表示所述任務切片的數據處理速率;datasize1表示讀數據的數據量,time1表示讀數據時間;datasize2表示寫數據的數據量,time2表示寫數據時間。
202:根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間。
未處理數據需要分別進行讀寫操作,因此作為又一個實施例,該步驟202可以包括:
根據所述數據處理速率,計算所述任務切片中未處理數據的讀數據時間以及寫數據時間;
計算所述任務切片中未處理數據的讀數據時間以及寫數據時間的和值,作為所述當前運行的任務切片中未處理數據的處理時間。
具體的該未處理數據的處理時間可以按照如下公式計算獲得:
timeleft=(datatotalsize–datasize1+datatotalsize–datasize2)/dataprocessspeed;
其中,timeleft表示未處理數據的處理時間,datatotalsize為任務切片的總數據量。
(datatotalsize–datasize1)/dataprocessspeed也即為未處理數據的 讀數據時間,(datatotalsize–datasize2)/dataprocessspeed也即為未處理數據的寫數據時間。
203:判斷所述處理時間是否大於預設時間,如果是,執行步驟204,如果否,則可以返回步驟201繼續進行計算。
該預設時間可以根據實際情況進行設定。
作為又一個實施例,該預設時間可以是指任務切片重新調度至第二計算節點中的重新調度時間。
因此如果處理時間大於重新調度時間,則生成調度指令,對任務切片重新進行調度即可。
而如果處理時間小於重新調度時間,則可以在第一計算節點中繼續運行該任務切片,以保證較高的作業運行效率。
204:生成調度指令發送至中心節點。
所述調度指令用於觸發所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行;其中,所述資源管理器部署在所述分布式系統中的任一個計算節點或中心節點中。
中心節點接收到調度指令,中斷所述任務切片的運行的同時,可以生成調度請求並發送至資源管理器。由資源管理器接收到調度請求時,重新調度所述任務切片在第二計算節點中運行。
本實施例中,第一計算節點對當前運行的任務切片計算數據處理速率,根據獲得的數據處理速率可以計算未處理數據的處理時間,並對處理時間進行判斷,如果處理時間大於預設時間,即可以通知中心節點,由中心節點中斷該任務切片的運行,並請求資源管理器重新調度。而如果處理時間小於預設時間,則該任務切片可以繼續運行。通過計算任務切片的數據處理速率和處理時間,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖3為本申請提供的一種作業調度方法又一個實施例的流程圖,該方法 主要應用於分布式系統中,該方法可以包括以下幾個步驟:
301:中心節點接收第一計算節點的調度指令。
其中,所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的。
根據所述數據處理速率,確定所述任務切片滿足調度條件可以有多種實現方式,具體可以參見上述實施例中所述,在此不再贅述。
302:中斷所述任務切片在所述第一計算節點中運行。
303:請求資源管理器重新調度所述任務切片在第二計算節點中運行。
中心節點接收到該調度指令之後,即中斷任務切片的運行,並告知資源管理器,請求請求資源管理器重新調度所述任務切片在第二計算節點中運行。
中心節點接收到調度指令,中斷所述任務切片的運行的同時,可以生成調度請求並發送至資源管理器。由資源管理器接收到調度請求時,重新調度所述任務切片在第二計算節點中運行。
從而可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖4為本申請提供的一種作業調度方法又一個實施例的流程圖,該方法主要應用於分布式系統中的資源管理器中,該方法可以包括以下幾個步驟:
401:接收中心節點的調度請求。
其中,所述調度請求為所述中心節點接收第一計算節點的調度指令,中斷所述任務切片在所述第一計算節點中運行之後生成的。
所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的。
根據所述數據處理速率,確定所述任務切片滿足調度條件可以有多種實 現方式,具體可以參見上述實施例中所述,在此不再贅述。
402:重新調度所述任務切片在第二計算節點中運行。
作為又一個實施例,資源管理器還可以終止調度所述第一計算節點;可以將第一計算節點設置禁用標記,使得攜帶禁用標記的計算節點不再調度任務切片運行。
其中,該第二計算節點可以是資源管理器選擇的負載較低的一個計算節點。資源管理器可以根據各個計算節點的數據處理速率或者各個計算節點中未處理數據的處理時間,選擇數據處理速率高或者未處理數據的處理時間短的一個計算節點作為第二計算節點。
當然,資源管理器還可以選擇存在空閒運行資源的任一個計算節點作為第二計算節點。
本實施例中,第一計算節點對當前運行的任務切片計算數據處理速率,根據獲得的數據處理速率可以進行判斷,如果任務切片滿足調度調度條件,即可以即可以通知中心節點,由中心節點中斷該任務切片的運行,並請求資源管理器重新調度。通過計算任務切片的數據處理速率,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖5為本申請提供的一種作業調度裝置一個實施例的結構示意圖,該裝置可以配置在分布式系統的任一個計算節點中,該裝置可以包括:
速率計算模塊501,用於計算當前運行的任務切片的數據處理速率;
調度請求模塊502,用於根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點;所述調度指令用於觸發所述中心節點中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行。
該第二計算節點可以是資源管理器選擇的負載較低的一個計算節點。資源管理器可以根據各個計算節點的數據處理速率或者各個計算節點中未處理數據的處理時間,選擇數據處理速率高或者未處理數據的處理時間短的一 個計算節點作為第二計算節點。
當然,資源管理器還可以選擇存在空閒運行資源的任一個計算節點作為第二計算節點。
其中,所述資源管理器部署在所述分布式系統中的任一個計算節點或中心節點中。
作為一種可能的實現方式,所述調度條件可以是指所述數據處理速率小於預設速率,該調度請求模塊502可以具體用於根據所述數據處理速率,在所述數據處理速率小於預設速率時,生成調度指令發送至中心節點。
也即數據處理速率較低時,表明該第一計算節點可能負載較高,需要對任務切片進行重新調度。
作為又一種可能的實現方式,該調度條件可以是指未處理數據的處理時間大於預設時間。
因此,作為又一個實施例,如圖6中所示,與圖5所示實施例不同之處在於,所述調度請求模塊503可以額包括:
時間計算單元601,用於根據所述數據處理速率,計算所述任務切片中未處理數據的處理時間;
調度請求單元602,用於在所述處理時間大於預設時間時,生成調度指令發送至中心節點。
如果處理時間大於預設時間,表明第一計算節點可能負載較高,此時應該重新調度該任務切片,而不是在第一計算節點中繼續運行,以保證作業運行效率,因此即可以生成調度指令發送至中心節點。中心節點即中斷所述任務切片在第一計算節點中運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行。
該預設時間可以根據實際情況進行設定。
作為又一個實施例,該預設時間可以是指任務切片重新調度至第二計算節點中的重新調度時間。
因此調度請求單元可以具體用於在所述處理時間大於重新調度時間,則生成調度指令,對任務切片重新進行調度即可。
而如果處理時間小於重新調度時間,則可以在第一計算節點中繼續運行該任務切片,以保證較高的作業運行效率。
其中,任務切片運行時,需要讀數據,並對讀取的數據進行處理之後,在進行寫數據。
因此根據讀數據和寫數據的數據量以及讀數據時間和寫數據時間,即可以計算獲得所述任務切片中未處理數據的處理時間。
因此,作為又一個實施例,所述速率計算模塊可以包括:
第一計算單元,用於記錄當前運行的任務切片在運行過程中,讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間;
第二計算單元,用於根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率。
通過記錄當前運行的任務切片在運行過程中,讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間;
根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,計算所述任務切片的數據處理速率。
其中,讀數據時間是指讀取所述讀數據的數據量所需的時間,寫數據時間是指寫入所述寫數據的數據量所需的時間。
具體的,所述第二計算單元可以具體根據所述讀數據的數據量和讀數據時間,以及寫數據的數據量和寫數據時間,可以按照如下計算公式計算所述任務切片的數據處理速率;
dataprocessspeed=(datasize1+datasize2)/(time1+time2);
其中,dataprocessspeed表示所述任務切片的數據處理速率;datasize1表示讀數據的數據量,time1表示讀數據時間;datasize2表示寫數據的數據量,time2表示寫數據時間。
其中,未處理數據需要分別進行讀寫操作,因此作為又一個實施例,所 述時間計算單元可以具體用於:
根據所述數據處理速率,計算所述任務切片中未處理數據的讀數據時間以及寫數據時間;
計算所述任務切片中未處理數據的讀數據時間以及寫數據時間的和值,作為所述當前運行的任務切片中未處理數據的處理時間。
具體的,可以按照如下公式計算獲得該未處理數據的處理時間:
timeleft=(datatotalsize–datasize1+datatotalsize–datasize2)/dataprocessspeed;
其中,timeleft表示未處理數據的處理時間,datatotalsize為任務切片的總數據量。
(datatotalsize–datasize1)/dataprocessspeed也即為未處理數據的讀數據時間,(datatotalsize–datasize2)/dataprocessspeed也即為未處理數據的寫數據時間。
本申請實施例中,第一計算節點對當前運行的任務切片計算數據處理速率,根據獲得的數據處理速率可以計算未處理數據的處理時間,並對處理時間進行判斷,如果處理時間大於預設時間,即可以通知中心節點,由中心節點中斷該任務切片的運行,並請求資源管理器重新調度。而如果處理時間小於預設時間,則該任務切片可以繼續運行。通過計算任務切片的數據處理速率和處理時間,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖7為本申請提供的一種作業調度裝置又一個實施例的結構示意圖,該裝置具體配置在分布式系統中的中心節點中,該裝置可以包括:
指令接收模塊701,用於接收第一計算節點的調度指令。
其中,所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的。
根據所述數據處理速率,確定所述任務切片滿足調度條件可以有多種實現方式,具體可以參見上述實施例中所述,在此不再贅述。
運行中斷模塊702,用於中斷所述任務切片在所述第一計算節點中運行。
調度觸發模塊703,用於請求資源管理器重新調度所述任務切片在第二計算節點中運行。
接收到該調度指令之後,即中斷任務切片的運行,並告知資源管理器,請求請求資源管理器重新調度所述任務切片在第二計算節點中運行。
從而可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
圖8為本申請提供的一種作業調度裝置又一個實施例的結構示意圖,該裝置在實際應用中配置為資源管理器,部署在分布式系統中的中心節點或者任一計算節點中,該裝置可以包括:
請求接收模塊801,用於接收中心節點的調度請求。
其中,所述調度請求為所述中心節點接收第一計算節點的調度指令,中斷所述任務切片在所述第一計算節點中運行之後生成的。
所述調度指令為所述第一計算節點計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時生成並發送的。
調度模塊802,用於重新調度所述任務切片在第二計算節點中運行。
作為又一個實施例,還可以將第一計算節點設置禁用標記,使得攜帶禁用標記的計算節點不再調度任務切片運行。
其中,該第二計算節點可以是選擇的負載較低的一個計算節點。可以根據各個計算節點的數據處理速率或者各個計算節點中未處理數據的處理時間,選擇數據處理速率高或者未處理數據的處理時間短的一個計算節點作為第二計算節點。
當然,還可以選擇存在空閒運行資源的任一個計算節點作為第二計算節 點。
本實施例中,接收到中心節點的調度請求之後,重新調度所述任務切片在第二計算節點中運行。第一計算節點對當前運行的任務切片計算數據處理速率,根據獲得的數據處理速率可以進行判斷,如果任務切片滿足調度調度條件,即可以生成調度指令通知中心節點,由中心節點中斷該任務切片的運行,並生成調度請求。通過計算任務切片的數據處理速率,獲得計算節點的實際運行情況,可以及時發現無法正常運行的計算節點,從而可以有效實現作業調度,以規避掉無法正常運行的計算節點,提高作業運行效率。
此外,本申請還提供了一種分布式系統,如圖9所示,該分布式系統可以包括中心節點901以及多個計算節點902,在所述中心節點901或者任一個計算節點902中部署資源管理器903,圖9中以資源管理器部署在任一個計算節點中為例進行說明,但是該資源管理器還可以部署在中心節點中。
所述多個計算節點中的第一計算節點,計算當前運行的任務切片的數據處理速率;根據所述數據處理速率,確定所述任務切片滿足調度條件時,生成調度指令發送至中心節點;
所述中心節點接收到所述調度指令之後,中斷所述任務切片的運行,並請求資源管理器重新調度所述任務切片在第二計算節點中運行。
通過本申請技術方案,有效實現了作業調度,保證了作業運行效率。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或快閃記憶體(flashram)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限於相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、 其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光碟只讀存儲器(cd-rom)、數字多功能光碟(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁碟存儲或其他磁性存儲設備或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitorymedia),如調製的數據信號和載波。
如在說明書及權利要求當中使用了某些詞彙來指稱特定組件。本領域技術人員應可理解,硬體製造商可能會用不同名詞來稱呼同一個組件。本說明書及權利要求並不以名稱的差異來作為區分組件的方式,而是以組件在功能上的差異來作為區分的準則。如在通篇說明書及權利要求當中所提及的「包含」為一開放式用語,故應解釋成「包含但不限定於」。「大致」是指在可接收的誤差範圍內,本領域技術人員能夠在一定誤差範圍內解決所述技術問題,基本達到所述技術效果。此外,「耦接」一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表所述第一裝置可直接電性耦接於所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書後續描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,並非用以限定本申請的範圍。本申請的保護範圍當視所附權利要求所界定者為準。
還需要說明的是,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的商品或者系統中還存在另外的相同要素。
上述說明示出並描述了本申請的若干優選實施例,但如前所述,應當理解本申請並非局限於本文所披露的形式,不應看作是對其他實施例的排除,而可用於各種其他組合、修改和環境,並能夠在本文所述申請構想範圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本申請的精神和範圍,則都應在本申請所附權利要求的保護範圍內。