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