一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法
【專利摘要】本發(fā)明提供了一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法,該系統(tǒng)包括:客戶端、多個調(diào)度中心及多個計算節(jié)點;調(diào)度中心接收并存儲每個計算節(jié)點發(fā)送的節(jié)點信息,節(jié)點信息包括節(jié)點位置信息及性能特征信息;客戶端從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點;計算節(jié)點發(fā)送節(jié)點信息給每個調(diào)度中心,接收并處理客戶端發(fā)送的待調(diào)度任務(wù)。本發(fā)明由客戶端進行調(diào)度,任務(wù)數(shù)據(jù)不經(jīng)過調(diào)度中心,避免調(diào)度中心的瓶頸限制。且負(fù)載均衡時考慮了計算節(jié)點的性能,能夠?qū)崿F(xiàn)均勻調(diào)度。
【專利說明】
一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體而言,涉及一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的迅猛發(fā)展,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)呈爆炸性增長,產(chǎn)生數(shù)百TB(Terabyte)甚至數(shù)十至數(shù)百PB(Petabyte)規(guī)模的大數(shù)據(jù),所產(chǎn)生的大數(shù)據(jù)要求計算機及信息系統(tǒng)具備更高的處理能力。
[0003]當(dāng)前,相關(guān)技術(shù)提供了一種大數(shù)據(jù)處理方法,該方法進行大數(shù)據(jù)處理的網(wǎng)絡(luò)架構(gòu)如圖1所示,客戶端發(fā)送任務(wù)數(shù)據(jù)給調(diào)度中心,調(diào)度中心根據(jù)服務(wù)器集群中每個服務(wù)器正在處理的任務(wù)數(shù)量,將上述任務(wù)數(shù)據(jù)調(diào)度給正在處理的任務(wù)數(shù)量最少的服務(wù)器進行處理。
[0004]由于任務(wù)數(shù)據(jù)必須經(jīng)調(diào)度中心進行調(diào)度,而調(diào)度中心的調(diào)度能力有限,限制了整個數(shù)據(jù)處理架構(gòu)的處理能力。且即便正在處理的任務(wù)數(shù)量相同,總計算量也可能不同,對計算能力不同的服務(wù)器來說負(fù)荷也不相同,因此基于正在處理的任務(wù)數(shù)量進行調(diào)度,很可能導(dǎo)致調(diào)度不均勻,無法有效保障負(fù)載均衡。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例的目的在于提供一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法,由客戶端進行調(diào)度,任務(wù)數(shù)據(jù)不經(jīng)過調(diào)度中心,避免調(diào)度中心的瓶頸限制。且負(fù)載均衡時考慮了計算節(jié)點的性能,能夠?qū)崿F(xiàn)均勻調(diào)度。
[0006]第一方面,本發(fā)明實施例提供了一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng),所述系統(tǒng)包括:客戶端、多個調(diào)度中心及多個計算節(jié)點;
[0007]所述調(diào)度中心,用于接收并存儲每個計算節(jié)點發(fā)送的節(jié)點信息,所述節(jié)點信息包括節(jié)點位置信息及性能特征信息;
[0008]所述客戶端,用于從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點;
[0009]所述計算節(jié)點,用于發(fā)送節(jié)點信息給每個調(diào)度中心,接收并處理所述客戶端發(fā)送的待調(diào)度任務(wù)。
[0010]結(jié)合第一方面,本發(fā)明實施例提供了上述第一方面的第一種可能的實現(xiàn)方式,其中,所述客戶端,用于通過軟件開發(fā)工具包SDK提供的接口,建立與調(diào)度中心之間的通信連接,通過建立的所述通信連接從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息。
[0011]結(jié)合第一方面,本發(fā)明實施例提供了上述第一方面的第二種可能的實現(xiàn)方式,其中,所述客戶端,用于通過軟件開發(fā)工具包SDK分別為所述每個計算節(jié)點創(chuàng)建對應(yīng)的虛擬節(jié)點;在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點的節(jié)點信息,并構(gòu)建等待隊列和工作隊列;通過所述SDK提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接。
[0012]結(jié)合第一方面,本發(fā)明實施例提供了上述第一方面的第三種可能的實現(xiàn)方式,其中,
[0013]所述客戶端,用于統(tǒng)計第一計算節(jié)點對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目,所述第一計算節(jié)點為所述每個計算節(jié)點中的任一計算節(jié)點;從所述第一計算節(jié)點的性能特征信息中獲取所述第一計算節(jié)點的中央處理器CPU核數(shù)及主頻;根據(jù)所述CPU核數(shù)及所述主頻,計算所述第一計算節(jié)點的計算能力值;根據(jù)當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目及所述計算能力值,計算所述第一計算節(jié)點對應(yīng)的負(fù)載率。
[0014]結(jié)合第一方面的第二種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第一方面的第四種可能的實現(xiàn)方式,其中,所述客戶端,用于根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)λ雒總€計算節(jié)點對應(yīng)的虛擬節(jié)點進行排序;從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點;通過調(diào)度器將所述待調(diào)度任務(wù)插入所述負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。
[0015]結(jié)合第一方面的第四種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第一方面的第五種可能的實現(xiàn)方式,其中,
[0016]所述客戶端,用于通過任務(wù)發(fā)送器經(jīng)所述負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接,發(fā)送所述待調(diào)度任務(wù)給所述對應(yīng)的計算節(jié)點;從所述負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除所述待調(diào)度任務(wù);將所述待調(diào)度任務(wù)插入所述負(fù)載率最小的虛擬節(jié)點的工作隊列的隊尾。
[0017]結(jié)合第一方面的第五種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第一方面的第六種可能的實現(xiàn)方式,其中,所述客戶端,用于接收負(fù)載率最小的計算節(jié)點返回的所述待調(diào)度任務(wù)對應(yīng)的處理結(jié)果;從所述負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除所述待調(diào)度任務(wù)。
[0018]結(jié)合第一方面的第二種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第一方面的第七種可能的實現(xiàn)方式,其中,所述客戶端,用于在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器;通過所述定時器分別記錄虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長;當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從所述工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。
[0019]第二方面,本發(fā)明實施例提供了一種大數(shù)據(jù)處理的分布式調(diào)度方法,所述方法包括:
[0020]從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,所述節(jié)點信息包括節(jié)點位置信息及性能特征信息;
[0021 ]根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率;
[0022]根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點。
[0023]結(jié)合第二方面,本發(fā)明實施例提供了上述第二方面的第一種可能的實現(xiàn)方式,其中,所述根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,包括:
[0024]統(tǒng)計第一計算節(jié)點對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目,所述第一計算節(jié)點為所述每個計算節(jié)點中的任一計算節(jié)點;
[0025]從所述第一計算節(jié)點的性能特征信息中獲取所述第一計算節(jié)點的中央處理器CPU核數(shù)及主頻;
[0026]根據(jù)所述CPU核數(shù)及所述主頻,計算所述第一計算節(jié)點的計算能力值;
[0027]根據(jù)當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目及所述計算能力值,計算所述第一計算節(jié)點對應(yīng)的負(fù)載率。
[0028]結(jié)合第二方面,本發(fā)明實施例提供了上述第二方面的第二種可能的實現(xiàn)方式,其中,所述從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,包括:
[0029]通過軟件開發(fā)工具包SDK提供的接口,建立與調(diào)度中心之間的通信連接;
[0030]通過建立的所述通信連接,從所述調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息。
[0031]結(jié)合第二方面,本發(fā)明實施例提供了上述第二方面的第三種可能的實現(xiàn)方式,其中,所述從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息之后,還包括:
[0032]通過軟件開發(fā)工具包SDK分別為所述每個計算節(jié)點創(chuàng)建對應(yīng)的虛擬節(jié)點;
[0033]在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點的節(jié)點信息,并構(gòu)建等待隊列和工作隊列;
[0034]通過所述SD K提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接。
[0035]結(jié)合第二方面的第三種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第二方面的第四種可能的實現(xiàn)方式,其中,所述根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點,包括:
[0036]根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)λ雒總€計算節(jié)點對應(yīng)的虛擬節(jié)點進行排序;
[0037]從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點;
[0038]通過調(diào)度器將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。
[0039]結(jié)合第二方面的第四種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第二方面的第五種可能的實現(xiàn)方式,其中,所述方法還包括:
[0040]通過任務(wù)發(fā)送器經(jīng)負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接,發(fā)送所述待調(diào)度任務(wù)給所述對應(yīng)的計算節(jié)點;
[0041]從負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除所述待調(diào)度任務(wù);
[0042]將所述待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點中的工作隊列的隊尾。
[0043]結(jié)合第二方面的第五種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第二方面的第六種可能的實現(xiàn)方式,其中,所述方法還包括:
[0044]接收負(fù)載率最小的虛擬節(jié)點對應(yīng)的計算節(jié)點返回的所述待調(diào)度任務(wù)對應(yīng)的處理結(jié)果;
[0045]從負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除所述待調(diào)度任務(wù)。
[0046]結(jié)合第二方面的第三種可能的實現(xiàn)方式,本發(fā)明實施例提供了上述第二方面的第七種可能的實現(xiàn)方式,其中,所述方法還包括:
[0047]在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器;
[0048]通過所述定時器分別記錄所述虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長;
[0049]當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從所述工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。
[0050]在本發(fā)明實施例提供的系統(tǒng)及方法中,該系統(tǒng)包括:客戶端、多個調(diào)度中心及多個計算節(jié)點;調(diào)度中心接收并存儲每個計算節(jié)點發(fā)送的節(jié)點信息,節(jié)點信息包括節(jié)點位置信息及性能特征信息;客戶端從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點;計算節(jié)點發(fā)送節(jié)點信息給每個調(diào)度中心,接收并處理客戶端發(fā)送的待調(diào)度任務(wù)。本發(fā)明由客戶端進行調(diào)度,任務(wù)數(shù)據(jù)不經(jīng)過調(diào)度中心,避免調(diào)度中心的瓶頸限制。且負(fù)載均衡時考慮了計算節(jié)點的性能,能夠?qū)崿F(xiàn)均勻調(diào)度。
[0051]為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。
【附圖說明】
[0052]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
[0053]圖1示出了現(xiàn)有技術(shù)所提供的一種大數(shù)據(jù)處理的網(wǎng)絡(luò)架構(gòu)示意圖;
[0054]圖2示出了本發(fā)明實施例1所提供的一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)的結(jié)構(gòu)示意圖;
[0055]圖3示出了本發(fā)明實施例1所提供的另一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)的結(jié)構(gòu)示意圖;
[0056]圖4示出了本發(fā)明實施例1所提供的一種調(diào)度器與虛擬節(jié)點配合調(diào)度的過程示意圖;
[0057]圖5示出了本發(fā)明實施例2所提供的一種大數(shù)據(jù)處理的分布式調(diào)度方法的流程示意圖。
【具體實施方式】
[0058]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0059]考慮到相關(guān)技術(shù)中任務(wù)數(shù)據(jù)必須經(jīng)調(diào)度中心進行調(diào)度,而調(diào)度中心的調(diào)度能力有限,限制了整個數(shù)據(jù)處理架構(gòu)的處理能力。且即便正在處理的任務(wù)數(shù)量相同,總計算量也可能不同,對計算能力不同的服務(wù)器來說負(fù)荷也不相同,因此基于正在處理的任務(wù)數(shù)量進行調(diào)度,很可能導(dǎo)致調(diào)度不均勻,無法有效保障負(fù)載均衡?;诖?,本發(fā)明實施例提供了一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)及方法,下面通過實施例進行描述。
[0060]實施例1
[0061]參見圖2,本發(fā)明實施例提供了一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng),該系統(tǒng)包括:客戶端1、多個調(diào)度中心2及多個計算節(jié)點3。圖2中,調(diào)度中心2簡稱為中心2。
[0062]其中,多個調(diào)度中心2采用副本機制,即這多個調(diào)度中心2中的每個調(diào)度中心2互為備份。在通過該分布式調(diào)度系統(tǒng)進行大數(shù)據(jù)處理時,每個調(diào)度中心2均與上述多個計算節(jié)點3通信連接,但設(shè)置在同一時刻最多有預(yù)設(shè)數(shù)目個調(diào)度中心2與客戶端I通信連接,該預(yù)設(shè)數(shù)目大于等于I且小于調(diào)度中心2的總數(shù)目。當(dāng)某個與客戶端I連接的調(diào)度中心2出現(xiàn)故障時,可以斷開故障的調(diào)度中心2與客戶端I之間的通信連接,然后從當(dāng)前未與客戶端I連接的調(diào)度中心2中隨機選擇一個調(diào)度中心2,建立選擇的調(diào)度中心2與客戶端I之間的通信連接。如此可以避免單個調(diào)度中心2異常時造成整個分布式調(diào)度系統(tǒng)無法工作的問題。
[0063]在本發(fā)明實施例中,采用計算節(jié)點3主動注冊的方式向調(diào)度中心2注冊節(jié)點信息。具體地,計算節(jié)點3,用于發(fā)送節(jié)點信息給上述多個調(diào)度中心2中的每個調(diào)度中心2,該節(jié)點信息包括計算節(jié)點3的節(jié)點位置信息及性能特征信息。節(jié)點位置信息包括計算節(jié)點3的IP(Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址和端口號等。性能特征信息用于表示計算節(jié)點3的計算能力,性能特征信息包括計算節(jié)點3的CPU(Central Processing Unit,中央處理器)核數(shù)、線程數(shù)、主頻、內(nèi)存容量和網(wǎng)絡(luò)帶寬等。
[0064]上述多個調(diào)度中心2中的每個調(diào)度中心2,用于接收每個計算節(jié)點3發(fā)送的節(jié)點信息,并存儲每個計算節(jié)點3的節(jié)點信息。
[0065]在本發(fā)明實施例中,客戶端I中安裝有SDK(Software Development Kit,軟件開發(fā)工具包),SDK為客戶端I提供接口,客戶端I通過SDK提供的接口與調(diào)度中心2及計算節(jié)點3建立通信連接。
[0066]當(dāng)客戶端I有需要處理的待調(diào)度任務(wù)時,客戶端I首先通過SDK提供的接口建立與多個調(diào)度中心2中的一個調(diào)度中心2之間的通信連接。然后,客戶端I,用于通過建立的通信連接從該調(diào)度中心2獲取每個計算節(jié)點3的節(jié)點信息,并存儲每個計算節(jié)點3的節(jié)點信息。
[0067]如圖3所示,客戶端I,還用于通過SDK分別為每個計算節(jié)點3創(chuàng)建對應(yīng)的虛擬節(jié)點;在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點3的節(jié)點信息,并構(gòu)建等待隊列和工作隊列;通過SDK提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點3之間的通信連接。
[0068]本發(fā)明實施例中,如圖3所示,客戶端I中安裝的SDK中還設(shè)置有調(diào)度器,客戶端I需要處理的待調(diào)度任務(wù)經(jīng)過調(diào)度器調(diào)度給虛擬節(jié)點,再由虛擬節(jié)點發(fā)送給虛擬節(jié)點對應(yīng)的計算節(jié)點3,計算節(jié)點3處理完后將待調(diào)度任務(wù)對應(yīng)的處理結(jié)果返回給其對應(yīng)的虛擬節(jié)點,虛擬節(jié)點再將該處理結(jié)果上傳給客戶端I的處理器。如此采用客戶端I進行任務(wù)調(diào)度,任務(wù)數(shù)據(jù)不必經(jīng)過調(diào)度中心2,避免了調(diào)度中心2處理能力有限導(dǎo)致的瓶頸問題。
[0069]在客戶端I進行任務(wù)調(diào)度時,客戶端I,用于根據(jù)當(dāng)前分配給每個計算節(jié)點3的任務(wù)數(shù)目及每個計算節(jié)點3的性能特征信息,分別計算每個計算節(jié)點3對應(yīng)的負(fù)載率,根據(jù)每個計算節(jié)點3對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點3。
[0070]本發(fā)明實施例中,客戶端I已分配給計算節(jié)點3但尚未發(fā)送給計算節(jié)點3的任務(wù)都存儲在該計算節(jié)點3對應(yīng)的虛擬節(jié)點的等待隊列中,當(dāng)客戶端I將任務(wù)發(fā)送給該計算節(jié)點3時從等待隊列中刪除該任務(wù),并將該任務(wù)插入該計算節(jié)點3對應(yīng)的虛擬節(jié)點的工作隊列中。因此當(dāng)前分配給計算節(jié)點3的任務(wù)數(shù)目即為該計算節(jié)點3對應(yīng)的虛擬節(jié)點的等待隊列及工作隊列中任務(wù)的總數(shù)目。
[0071]上述客戶端I計算每個計算節(jié)點3的負(fù)載率時,客戶端I,用于統(tǒng)計第一計算節(jié)點3對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給第一計算節(jié)點3的任務(wù)數(shù)目,第一計算節(jié)點3為每個計算節(jié)點3中的任一計算節(jié)點3;從第一計算節(jié)點3的性能特征信息中獲取第一計算節(jié)點3的CPU核數(shù)及主頻;根據(jù)CPU核數(shù)及主頻,計算第一計算節(jié)點3的計算能力值;根據(jù)當(dāng)前分配給第一計算節(jié)點3的任務(wù)數(shù)目及計算能力值,計算第一計算節(jié)點3對應(yīng)的負(fù)載率。
[0072]上述第一計算節(jié)點3的計算能力值為第一計算節(jié)點3的CPU核數(shù)與主頻的乘積。在本發(fā)明實施例中,若第一計算節(jié)點3的CPU為超線程CPU,則第一計算節(jié)點3的計算能力值為預(yù)設(shè)系數(shù)、第一計算節(jié)點3的CPU核數(shù)及主頻三者的乘積。其中,預(yù)設(shè)系數(shù)可以為1.25或1.5等,本發(fā)明實施例并不具體限定預(yù)設(shè)系數(shù)的具體取值,在實際應(yīng)用中可根據(jù)實際需要自定義預(yù)設(shè)系數(shù)的取值。另外,上述(PU核數(shù)為第一計算節(jié)點3的物理核數(shù),而不是線程數(shù)。
[0073]通過上述方式得到第一計算節(jié)點3的計算能力值后,計算當(dāng)前分配給第一計算節(jié)點3的任務(wù)數(shù)目與該計算能力值之間的比值,將計算的比值確定為第一計算節(jié)點3對應(yīng)的負(fù)載率。對于分別時調(diào)度系統(tǒng)中的其他每個計算節(jié)點3,都同第一計算節(jié)點3,按照上述方式分別計算出其他每個計算節(jié)點3對應(yīng)的負(fù)載率。
[0074]由于分配給計算節(jié)點3的任務(wù)數(shù)目是時刻變化的,所以計算節(jié)點3對應(yīng)的負(fù)載率也是時刻變化的,本發(fā)明實施例中客戶端I將通過上述方式實時計算每個計算節(jié)點3對應(yīng)的負(fù)載率。
[0075]本發(fā)明實施例在計算負(fù)載率時,綜合考慮了分配給計算節(jié)點3的任務(wù)量及計算節(jié)點3的計算能力,避免了因計算節(jié)點3的計算能力不同導(dǎo)致的調(diào)度不均勾的問題,能夠有效實現(xiàn)負(fù)載均衡。
[0076]通過上述方式計算出每個計算節(jié)點3對應(yīng)的負(fù)載率后,客戶端I,用于根據(jù)每個計算節(jié)點3對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)γ總€計算節(jié)點3對應(yīng)的虛擬節(jié)點進行排序;從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點;通過調(diào)度器將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。
[0077]上述對虛擬節(jié)點的排序操作是在調(diào)度器中進行的,預(yù)設(shè)順序可以為按照負(fù)載率從大到小的順序,或者按照負(fù)載率從小到大的順序。
[0078]客戶端I的處理器提交給SDK的待調(diào)度任務(wù),由調(diào)度器按照上述方式分配給負(fù)載率最小的虛擬節(jié)點,將該待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。
[0079]本發(fā)明實施例中,客戶端I,還用于通過任務(wù)發(fā)送器經(jīng)負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點3之間的通信連接,發(fā)送待調(diào)度任務(wù)給對應(yīng)的計算節(jié)點3;從負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除待調(diào)度任務(wù);將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的工作隊列的隊尾。
[0080]上述客戶端I通過任務(wù)發(fā)送器將待調(diào)度任務(wù)發(fā)送給負(fù)載率最小的計算節(jié)點3后,計算節(jié)點3,用于接收并處理客戶端I發(fā)送的待調(diào)度任務(wù)。當(dāng)計算節(jié)點3處理完待調(diào)度任務(wù)后,發(fā)送待調(diào)度任務(wù)對應(yīng)的處理結(jié)果給客戶端I。
[0081]此時,客戶端I,用于接收負(fù)載率最小的計算節(jié)點3返回的待調(diào)度任務(wù)對應(yīng)的處理結(jié)果;從負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除待調(diào)度任務(wù)。
[0082]為了便于理解調(diào)度器與虛擬節(jié)點配合調(diào)度的過程,下面結(jié)合附圖以單個計算節(jié)點3及計算節(jié)點3對應(yīng)的虛擬節(jié)點為例進行說明。如圖4所示,圖4中A圖表示調(diào)度器將客戶端I的處理器提交的任務(wù)12插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。圖4中B圖表示通過任務(wù)發(fā)送器發(fā)送任務(wù)8給負(fù)載率最小的計算節(jié)點3時,從等待隊列中刪除任務(wù)8,將任務(wù)8插入工作隊列的隊尾。圖4中C圖表示當(dāng)計算節(jié)點3處理完任務(wù)7,并返回任務(wù)7對應(yīng)的處理結(jié)果給結(jié)果接收器時,從工作隊列中刪除任務(wù)7。
[0083]本發(fā)明實施例中,客戶端I中的任務(wù)發(fā)送器具備整合發(fā)送的功能,即可以通過任務(wù)發(fā)送器同時將多個任務(wù)發(fā)送給計算節(jié)點3,以提升任務(wù)發(fā)送的效率。
[0084]另外,由于待調(diào)度任務(wù)在發(fā)送的過程中可能存在丟失數(shù)據(jù)包的問題,導(dǎo)致計算節(jié)點3無法完成對待調(diào)度任務(wù)的處理,如此客戶端I接收不到計算節(jié)點3返回的待調(diào)度任務(wù)對應(yīng)的處理結(jié)果,這樣該待調(diào)度任務(wù)將一直緩存在工作隊列中,形成僵死任務(wù)。為了避免工作隊列中出現(xiàn)僵死任務(wù),本發(fā)明實施例對工作隊列中緩存的任務(wù)進行定時,并將超時的任務(wù)刪除。具體地,客戶端I,用于在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器;通過定時器分別記錄虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長;當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。
[0085]上述定時器機制可以避免網(wǎng)絡(luò)傳輸數(shù)據(jù)丟包造成的任務(wù)丟失問題,避免造成工作隊列中存在僵死任務(wù)而無法充分利用計算資源的問題。
[0086]本發(fā)明實施例中,負(fù)載率綜合考慮了當(dāng)前分配給計算節(jié)點3的任務(wù)數(shù)目及計算節(jié)點3的計算能力,有效地解決了任務(wù)量與計算能力相匹配的均勾調(diào)度問題,同時通過計算節(jié)點3的處理結(jié)果反饋機制可以及時感知計算節(jié)點3的負(fù)載狀態(tài),從而實現(xiàn)充分利用計算資源。本方案中還可以對計算節(jié)點3的負(fù)載率設(shè)置閾值限制,當(dāng)計算節(jié)點3的負(fù)載率超過閾值時不再向計算節(jié)點3調(diào)度任務(wù),避免分配的任務(wù)的緩沖量過大造成的內(nèi)存不足的問題。
[0087]在本發(fā)明實施例中,雖然虛擬節(jié)點的負(fù)載率是動態(tài)變化的,但仍存在某些計算節(jié)點3的負(fù)載率相同或相近的情況。例如,在分布式調(diào)度系統(tǒng)剛剛啟動時,所有客戶端I都認(rèn)為所有計算節(jié)點3的負(fù)載率都是0,此時所有客戶端I中對虛擬節(jié)點的排序都是相同的,若同時下發(fā)待調(diào)度任務(wù)則會造成所有客戶端I在同一時刻向同一計算節(jié)點3下發(fā)任務(wù)的情況。本發(fā)明實施例為了避免這一問題,在負(fù)載率相同或相近時,調(diào)度器采用隨機方式進行任務(wù)調(diào)度。
[0088]本發(fā)明實施例也能有效解決多客戶端I同時調(diào)度不均衡的問題,在剛開始調(diào)度時由于所有虛擬節(jié)點的負(fù)載率都是0,客戶端I會向所有的計算節(jié)點3發(fā)任務(wù),即便此時存在不均衡的問題,但隨時間推移,繁忙的計算節(jié)點3由于處理結(jié)果返回速度變慢,造成該計算節(jié)點3對應(yīng)的虛擬節(jié)點的負(fù)載率變高,客戶端I向該計算節(jié)點3調(diào)度的任務(wù)數(shù)量就會變少,慢慢所有的計算節(jié)點3的任務(wù)調(diào)度趨于均衡。且即便調(diào)度算法不同,本發(fā)明實施例也能有效的緩解調(diào)度不均勻的問題。
[0089]本發(fā)明實施例提供的分布式調(diào)度系統(tǒng)進行任務(wù)調(diào)度的時效性高,任務(wù)下發(fā)后能夠快速返回任務(wù)對應(yīng)的處理結(jié)果,也適合于實時性要求很高的交互式應(yīng)用中。
[0090]在本發(fā)明實施例中,分布式調(diào)度系統(tǒng)包括:客戶端、多個調(diào)度中心及多個計算節(jié)點;調(diào)度中心接收并存儲每個計算節(jié)點發(fā)送的節(jié)點信息,節(jié)點信息包括節(jié)點位置信息及性能特征信息;客戶端從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點;計算節(jié)點發(fā)送節(jié)點信息給每個調(diào)度中心,接收并處理客戶端發(fā)送的待調(diào)度任務(wù)。本發(fā)明由客戶端進行調(diào)度,任務(wù)數(shù)據(jù)不經(jīng)過調(diào)度中心,避免調(diào)度中心的瓶頸限制。且負(fù)載均衡時考慮了計算節(jié)點的性能,能夠?qū)崿F(xiàn)均勻調(diào)度。
[0091]實施例2
[0092]參見圖5,本發(fā)明實施例提供了一種大數(shù)據(jù)處理的分布式調(diào)度方法,該方法的執(zhí)行主體可以為實施例1提供的分布式調(diào)度系統(tǒng)中的客戶端。該方法具體包括以下步驟:
[0093]步驟201:從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,節(jié)點信息包括節(jié)點位置信息及性能特征信息。
[0094]上述節(jié)點位置信息包括計算節(jié)點的IP地址和端口號等。性能特征信息用于表示計算節(jié)點的計算能力,性能特征信息包括計算節(jié)點的CHJ核數(shù)、線程數(shù)、主頻、內(nèi)存容量和網(wǎng)絡(luò)帶寬等。
[0095]在大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng)中,所有計算節(jié)點均在每個調(diào)度中心中注冊了自身的節(jié)點信息??蛻舳酥邪惭b有SDK,SDK為客戶端提供接口,客戶端通過SDK提供的接口與調(diào)度中心及計算節(jié)點建立通信連接。
[0096]客戶端獲取每個計算節(jié)點的節(jié)點信息的過程,具體包括:通過SDK提供的接口,建立與調(diào)度中心之間的通信連接;通過建立的通信連接,從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息??蛻舳双@取到每個計算節(jié)點的節(jié)點信息后,還存儲每個計算節(jié)點的節(jié)點信息。
[0097]在分布式調(diào)度系統(tǒng)中,采用副本機制的調(diào)度中心,即設(shè)置多個調(diào)度中心,這多個調(diào)度中心中的每個調(diào)度中心互為備份??蛻舳送ㄟ^SDK提供的接口建立與多個調(diào)度中心中的一個調(diào)度中心之間的通信連接,并從該調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息。
[0098]在本發(fā)明實施例中,客戶端還通過SDK分別為每個計算節(jié)點創(chuàng)建對應(yīng)的虛擬節(jié)點;在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點的節(jié)點信息,并構(gòu)建等待隊列和工作隊列;通過SDK提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接。
[0099]步驟202:根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率;
[0100]在本發(fā)明實施例中,客戶端已分配給計算節(jié)點但尚未發(fā)送給計算節(jié)點的任務(wù)都存儲在該計算節(jié)點對應(yīng)的虛擬節(jié)點的等待隊列中,當(dāng)客戶端將任務(wù)發(fā)送給該計算節(jié)點時從等待隊列中刪除該任務(wù),并將該任務(wù)插入該計算節(jié)點對應(yīng)的虛擬節(jié)點的工作隊列中。因此當(dāng)前分配給計算節(jié)點的任務(wù)數(shù)目即為該計算節(jié)點對應(yīng)的虛擬節(jié)點的等待隊列及工作隊列中任務(wù)的總數(shù)目。
[0101]本發(fā)明實施例中,客戶端中安裝的SDK中還設(shè)置有調(diào)度器,客戶端通過調(diào)度器計算每個計算節(jié)點對應(yīng)的負(fù)載率,具體計算過程包括:
[0102]統(tǒng)計第一計算節(jié)點對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給第一計算節(jié)點的任務(wù)數(shù)目,第一計算節(jié)點為每個計算節(jié)點中的任一計算節(jié)點;從第一計算節(jié)點的性能特征信息中獲取第一計算節(jié)點的中央處理器CPU核數(shù)及主頻;根據(jù)CHJ核數(shù)及主頻,計算第一計算節(jié)點的計算能力值;根據(jù)當(dāng)前分配給第一計算節(jié)點的任務(wù)數(shù)目及計算能力值,計算第一計算節(jié)點對應(yīng)的負(fù)載率。
[0103]上述第一計算節(jié)點的計算能力值為第一計算節(jié)點的CPU核數(shù)與主頻的乘積。在本發(fā)明實施例中,若第一計算節(jié)點的CPU為超線程CPU,則第一計算節(jié)點的計算能力值為預(yù)設(shè)系數(shù)、第一計算節(jié)點的CPU核數(shù)及主頻三者的乘積。其中,預(yù)設(shè)系數(shù)可以為1.25或1.5等,本發(fā)明實施例并不具體限定預(yù)設(shè)系數(shù)的具體取值,在實際應(yīng)用中可根據(jù)實際需要自定義預(yù)設(shè)系數(shù)的取值。另外,上述(PU核數(shù)為第一計算節(jié)點的物理核數(shù),而不是線程數(shù)。
[0104]通過上述方式得到第一計算節(jié)點的計算能力值后,計算當(dāng)前分配給第一計算節(jié)點的任務(wù)數(shù)目與該計算能力值之間的比值,將計算的比值確定為第一計算節(jié)點對應(yīng)的負(fù)載率。對于分別時調(diào)度系統(tǒng)中的其他每個計算節(jié)點,都同第一計算節(jié)點,按照上述方式分別計算出其他每個計算節(jié)點對應(yīng)的負(fù)載率。
[0105]由于分配給計算節(jié)點的任務(wù)數(shù)目是時刻變化的,所以計算節(jié)點對應(yīng)的負(fù)載率也是時刻變化的,本發(fā)明實施例通過上述方式實時計算每個計算節(jié)點對應(yīng)的負(fù)載率。
[0106]上述計算負(fù)載率時,綜合考慮了分配給計算節(jié)點的任務(wù)量及計算節(jié)點的計算能力,避免了因計算節(jié)點的計算能力不同導(dǎo)致的調(diào)度不均勻的問題,能夠有效實現(xiàn)負(fù)載均衡。
[0107]通過上述方式實時計算每個計算節(jié)點對應(yīng)的負(fù)載率,當(dāng)客戶端有需要處理的待調(diào)度任務(wù)時,通過如下步驟103將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點。
[0108]步驟203:根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點。
[0109]根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)γ總€計算節(jié)點對應(yīng)的虛擬節(jié)點進行排序;從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點;通過調(diào)度器將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點中的等待隊列的隊尾。
[0110]上述對虛擬節(jié)點的排序操作是在調(diào)度器中進行的,預(yù)設(shè)順序可以為按照負(fù)載率從大到小的順序,或者按照負(fù)載率從小到大的順序。
[0111]客戶端的處理器提交給SDK的待調(diào)度任務(wù),由調(diào)度器按照上述方式分配給負(fù)載率最小的虛擬節(jié)點,將該待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。
[0112]將待調(diào)度任務(wù)插入等待隊列進行等待后,客戶端還需通過如下方式將排在等待隊列隊首的待調(diào)度任務(wù)發(fā)送給計算節(jié)點進行處理,具體包括:
[0113]通過任務(wù)發(fā)送器經(jīng)負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接,發(fā)送待調(diào)度任務(wù)給對應(yīng)的計算節(jié)點;從負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除待調(diào)度任務(wù);將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的工作隊列的隊尾。
[0114]通過上述方式將待調(diào)度任務(wù)發(fā)送給負(fù)載率最小的計算節(jié)點后,計算節(jié)點接收并處理待調(diào)度任務(wù),并在處理完成后返回待調(diào)度任務(wù)對應(yīng)的處理結(jié)果。
[0115]客戶端接收負(fù)載率最小的虛擬節(jié)點對應(yīng)的計算節(jié)點返回的待調(diào)度任務(wù)對應(yīng)的處理結(jié)果;從負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除待調(diào)度任務(wù)。
[0116]由于待調(diào)度任務(wù)在發(fā)送的過程中可能存在丟失數(shù)據(jù)包的問題,導(dǎo)致計算節(jié)點無法完成對待調(diào)度任務(wù)的處理,如此客戶端接收不到計算節(jié)點返回的待調(diào)度任務(wù)對應(yīng)的處理結(jié)果,這樣該待調(diào)度任務(wù)將一直緩存在工作隊列中,形成僵死任務(wù)。為了避免工作隊列中出現(xiàn)僵死任務(wù),本發(fā)明實施例對工作隊列中緩存的任務(wù)進行定時,并將超時的任務(wù)刪除。該定時機制的具體操作過程包括:
[0117]在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器;通過定時器分別記錄虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長;當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。
[0118]上述定時器機制可以避免網(wǎng)絡(luò)傳輸數(shù)據(jù)丟包造成的任務(wù)丟失問題,避免造成工作隊列中存在僵死任務(wù)而無法充分利用計算資源的問題。
[0119]本發(fā)明實施例中,負(fù)載率綜合考慮了當(dāng)前分配給計算節(jié)點的任務(wù)數(shù)目及計算節(jié)點的計算能力,有效地解決了任務(wù)量與計算能力相匹配的均勾調(diào)度問題,同時通過計算節(jié)點的處理結(jié)果反饋機制可以及時感知計算節(jié)點的負(fù)載狀態(tài),從而實現(xiàn)充分利用計算資源。本方案中還可以對計算節(jié)點的負(fù)載率設(shè)置閾值限制,當(dāng)計算節(jié)點的負(fù)載率超過閾值時不再向計算節(jié)點調(diào)度任務(wù),避免分配的任務(wù)的緩沖量過大造成的內(nèi)存不足的問題。
[0120]本發(fā)明實施例提供的分布式調(diào)度系統(tǒng)進行任務(wù)調(diào)度的時效性高,任務(wù)下發(fā)后能夠快速返回任務(wù)對應(yīng)的處理結(jié)果,也適合于實時性要求很高的交互式應(yīng)用中。
[0121]在本發(fā)明實施例中,從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點。本發(fā)明由客戶端進行調(diào)度,任務(wù)數(shù)據(jù)不經(jīng)過調(diào)度中心,避免調(diào)度中心的瓶頸限制。且負(fù)載均衡時考慮了計算節(jié)點的性能,能夠?qū)崿F(xiàn)均勻調(diào)度。
[0122]本發(fā)明實施例所提供的方法,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述系統(tǒng)實施例中客戶端的原理及產(chǎn)生的技術(shù)效果相同,為簡要描述,方法實施例部分未提及之處,可參考前述系統(tǒng)實施例中相應(yīng)內(nèi)容。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,前述描述的系統(tǒng)的具體工作過程,也可以參考上述方法實施例中的對應(yīng)過程,在此不再贅述。
[0123]在本發(fā)明所提供的實施例中,應(yīng)該理解到,所揭露系統(tǒng)和方法,可以通過其它的方式實現(xiàn)。以上所描述的系統(tǒng)及方法實施例僅僅是示意性的。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0124]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0125]應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋,此外,術(shù)語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
[0126]最后應(yīng)說明的是:以上所述實施例,僅為本發(fā)明的【具體實施方式】,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實施例所記載的技術(shù)方案進行修改或可輕易想到變化,或者對其中部分技術(shù)特征進行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準(zhǔn)。
【主權(quán)項】
1.一種大數(shù)據(jù)處理的分布式調(diào)度系統(tǒng),其特征在于,所述系統(tǒng)包括:客戶端、多個調(diào)度中心及多個計算節(jié)點; 所述調(diào)度中心,用于接收并存儲每個計算節(jié)點發(fā)送的節(jié)點信息,所述節(jié)點信息包括節(jié)點位置信息及性能特征信息; 所述客戶端,用于從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點; 所述計算節(jié)點,用于發(fā)送節(jié)點信息給每個調(diào)度中心,接收并處理所述客戶端發(fā)送的待調(diào)度任務(wù)。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述客戶端,用于通過軟件開發(fā)工具包SDK提供的接口,建立與調(diào)度中心之間的通信連接,通過建立的所述通信連接從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息。3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述客戶端,用于通過軟件開發(fā)工具包SDK分別為所述每個計算節(jié)點創(chuàng)建對應(yīng)的虛擬節(jié)點;在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點的節(jié)點信息,并構(gòu)建等待隊列和工作隊列;通過所述SDK提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接。4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述客戶端,用于統(tǒng)計第一計算節(jié)點對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目,所述第一計算節(jié)點為所述每個計算節(jié)點中的任一計算節(jié)點;從所述第一計算節(jié)點的性能特征信息中獲取所述第一計算節(jié)點的中央處理器CPU核數(shù)及主頻;根據(jù)所述CPU核數(shù)及所述主頻,計算所述第一計算節(jié)點的計算能力值;根據(jù)當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目及所述計算能力值,計算所述第一計算節(jié)點對應(yīng)的負(fù)載率。5.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述客戶端,用于根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)λ雒總€計算節(jié)點對應(yīng)的虛擬節(jié)點進行排序;從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點;通過調(diào)度器將所述待調(diào)度任務(wù)插入所述負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于, 所述客戶端,用于通過任務(wù)發(fā)送器經(jīng)所述負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接,發(fā)送所述待調(diào)度任務(wù)給所述對應(yīng)的計算節(jié)點;從所述負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除所述待調(diào)度任務(wù);將所述待調(diào)度任務(wù)插入所述負(fù)載率最小的虛擬節(jié)點的工作隊列的隊尾。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述客戶端,用于接收負(fù)載率最小的計算節(jié)點返回的所述待調(diào)度任務(wù)對應(yīng)的處理結(jié)果;從所述負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除所述待調(diào)度任務(wù)。8.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述客戶端,用于在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器;通過所述定時器分別記錄虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長;當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從所述工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。9.一種大數(shù)據(jù)處理的分布式調(diào)度方法,其特征在于,所述方法包括: 從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,所述節(jié)點信息包括節(jié)點位置信息及性能特征信息; 根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率; 根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述根據(jù)當(dāng)前分配給每個計算節(jié)點的任務(wù)數(shù)目及每個計算節(jié)點的性能特征信息,分別計算每個計算節(jié)點對應(yīng)的負(fù)載率,包括: 統(tǒng)計第一計算節(jié)點對應(yīng)的等待隊列和工作隊列中包括的任務(wù)數(shù)目,將統(tǒng)計的任務(wù)數(shù)目確定為當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目,所述第一計算節(jié)點為所述每個計算節(jié)點中的任一計算節(jié)點; 從所述第一計算節(jié)點的性能特征信息中獲取所述第一計算節(jié)點的中央處理器CPU核數(shù)及主頻; 根據(jù)所述CPU核數(shù)及所述主頻,計算所述第一計算節(jié)點的計算能力值; 根據(jù)當(dāng)前分配給所述第一計算節(jié)點的任務(wù)數(shù)目及所述計算能力值,計算所述第一計算節(jié)點對應(yīng)的負(fù)載率。11.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息,包括: 通過軟件開發(fā)工具包SDK提供的接口,建立與調(diào)度中心之間的通信連接; 通過建立的所述通信連接,從所述調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息。12.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述從調(diào)度中心獲取每個計算節(jié)點的節(jié)點信息之后,還包括: 通過軟件開發(fā)工具包SDK分別為所述每個計算節(jié)點創(chuàng)建對應(yīng)的虛擬節(jié)點; 在創(chuàng)建的虛擬節(jié)點中,存儲虛擬節(jié)點對應(yīng)的計算節(jié)點的節(jié)點信息,并構(gòu)建等待隊列和工作隊列; 通過所述SDK提供的接口,建立創(chuàng)建的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接。13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,將待調(diào)度任務(wù)分配給負(fù)載率最小的計算節(jié)點,包括: 根據(jù)所述每個計算節(jié)點對應(yīng)的負(fù)載率,按照預(yù)設(shè)順序?qū)λ雒總€計算節(jié)點對應(yīng)的虛擬節(jié)點進行排序; 從排序后的虛擬節(jié)點中選擇負(fù)載率最小的虛擬節(jié)點; 通過調(diào)度器將待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的等待隊列的隊尾。14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述方法還包括: 通過任務(wù)發(fā)送器經(jīng)負(fù)載率最小的虛擬節(jié)點與對應(yīng)的計算節(jié)點之間的通信連接,發(fā)送所述待調(diào)度任務(wù)給所述對應(yīng)的計算節(jié)點; 從負(fù)載率最小的虛擬節(jié)點的等待隊列中刪除所述待調(diào)度任務(wù); 將所述待調(diào)度任務(wù)插入負(fù)載率最小的虛擬節(jié)點的工作隊列的隊尾。15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述方法還包括: 接收負(fù)載率最小的虛擬節(jié)點對應(yīng)的計算節(jié)點返回的所述待調(diào)度任務(wù)對應(yīng)的處理結(jié)果; 從負(fù)載率最小的虛擬節(jié)點的工作隊列中刪除所述待調(diào)度任務(wù)。16.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述方法還包括: 在創(chuàng)建的虛擬節(jié)點中設(shè)置定時器; 通過所述定時器分別記錄所述虛擬節(jié)點的工作隊列中每個任務(wù)的處理時長; 當(dāng)檢測到處理時長超過預(yù)設(shè)時長的任務(wù)時,從所述工作隊列中刪除處理時長超過預(yù)設(shè)時長的任務(wù),并顯示超時錯誤提示信息。
【文檔編號】G06F9/50GK106095572SQ201610404437
【公開日】2016年11月9日
【申請日】2016年6月8日
【發(fā)明人】周光明, 蔣宗文, 郭軍
【申請人】東方網(wǎng)力科技股份有限公司