欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于hdfs的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法

文檔序號(hào):7817623閱讀:744來(lái)源:國(guó)知局
基于hdfs的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法
【專(zhuān)利摘要】本發(fā)明涉及基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,包括:S1:Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài);S2:Planner從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息;S3:通過(guò)Planner讀取的所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)以及從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。本發(fā)明通過(guò)產(chǎn)生的Planner在盡力保證計(jì)算本地化的基礎(chǔ)上,能夠快速、高效的實(shí)現(xiàn)負(fù)載均衡。
【專(zhuān)利說(shuō)明】基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)分布式數(shù)據(jù)庫(kù)【技術(shù)領(lǐng)域】,尤其涉及基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法。

【背景技術(shù)】
[0002]目前,大部分?jǐn)?shù)據(jù)分析引擎是通過(guò)搬動(dòng)HDFS文件來(lái)實(shí)現(xiàn)負(fù)載均衡,即改變HDFS文件的物理位置,例如,從Data Node A (數(shù)據(jù)節(jié)點(diǎn)A)搬到Data Node B (數(shù)據(jù)節(jié)點(diǎn)B),本發(fā)明人還沒(méi)有發(fā)現(xiàn)在數(shù)據(jù)運(yùn)行時(shí)實(shí)現(xiàn)負(fù)載均衡方面的相關(guān)研究。Map Reduce模型的不足是分配任務(wù)方式存在一些不必要的遠(yuǎn)程讀取,影響查詢(xún)或者存儲(chǔ)數(shù)據(jù)的性能。


【發(fā)明內(nèi)容】

[0003]本發(fā)明所要解決的技術(shù)問(wèn)題是如何將大表計(jì)算發(fā)送到數(shù)據(jù)存儲(chǔ)的節(jié)點(diǎn)去執(zhí)行,盡量避免數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸?shù)狡渌?jié)點(diǎn)去計(jì)算,節(jié)約帶寬占用的關(guān)鍵問(wèn)題。
[0004]為此目的,本發(fā)明提出了基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,提高系統(tǒng)的計(jì)算和查詢(xún)速度。具體包括以下步驟:
[0005]SI =Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài);
[0006]S2 =Planner從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息;
[0007]S3:通過(guò)Planner讀取的數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)以及從所述名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。
[0008]進(jìn)一步地,所述步驟SI還包括:Planner將全部存活節(jié)點(diǎn)的負(fù)載狀態(tài)換算為相對(duì)應(yīng)大小的數(shù)據(jù)包。
[0009]進(jìn)一步地,所述步驟SI還包括:內(nèi)存空間量最大的節(jié)點(diǎn)不需要進(jìn)行換算為相對(duì)應(yīng)大小的數(shù)據(jù)包。
[0010]具體地,所述Planner將全部存活節(jié)點(diǎn)的負(fù)載狀態(tài)換算為相對(duì)應(yīng)大小的數(shù)據(jù)包的具體過(guò)程為:找到空閑內(nèi)存量最大的節(jié)點(diǎn),將其空閑內(nèi)存值記SMfflax;以及分別計(jì)算其它節(jié)點(diǎn)的數(shù)據(jù)包的大小,等于Mmax-Mfree其中,Mf_為當(dāng)前機(jī)器的空閑內(nèi)存量。
[0011]進(jìn)一步地,所述步驟S2還包括:如果副本所在的節(jié)點(diǎn)地址列表為空,則該數(shù)據(jù)包的副本所在的機(jī)器上沒(méi)有運(yùn)行數(shù)據(jù)分析引擎,通過(guò)遠(yuǎn)程讀取,將副本地址設(shè)置成所有存活的數(shù)據(jù)分析引擎的地址;如果副本所在的節(jié)點(diǎn)地址列表不為空,則不添加數(shù)據(jù)分析引擎地址到地址列表中。
[0012]進(jìn)一步地,所述步驟S3還包括:
[0013]S31 =Planner將所有的數(shù)據(jù)包分成N組,每組M個(gè)數(shù)據(jù)包;
[0014]S32:將可能最優(yōu)解初始化為空,評(píng)價(jià)值設(shè)為-1 ;
[0015]S33:從第一組開(kāi)始,每向前搜索一步,便用剪枝函數(shù)判斷該條分支是否有可能產(chǎn)生更優(yōu)的解;
[0016]S34:如果該分支不能產(chǎn)生更優(yōu)解則剪掉該分支,后退一步,用剪枝函數(shù)尋找到可能產(chǎn)生更優(yōu)解的其它分支,繼續(xù)搜索;
[0017]S35:搜索到此組數(shù)據(jù)包隊(duì)列的末尾,產(chǎn)生新的解;
[0018]S36:利用評(píng)價(jià)函數(shù)A計(jì)算新解的評(píng)價(jià)值;
[0019]S37:如果可能最優(yōu)解的評(píng)價(jià)值為-1,則將所述新產(chǎn)生的解保存為可能最優(yōu)解;如果評(píng)價(jià)值小于可能最優(yōu)解,則判定新產(chǎn)生的解更好,則將所述新產(chǎn)生的解保存為可能最優(yōu)解;如果評(píng)價(jià)值大于可能最優(yōu)解,則丟棄掉。
[0020]S38:Planner根據(jù)所有的數(shù)據(jù)包的分配結(jié)果和當(dāng)前組將要分配的數(shù)據(jù)包的數(shù)據(jù)量進(jìn)行計(jì)算的,其中,Planner使用S31-S37上述這種方法可以使之前分配的信息對(duì)后續(xù)數(shù)據(jù)包的分配產(chǎn)生影響,且分配方式能讓每組數(shù)據(jù)包的分配不會(huì)彼此獨(dú)立,使得分配的數(shù)據(jù)量更接近均衡。
[0021]進(jìn)一步地,所述步驟S37還包括:如果評(píng)價(jià)值大于可能最優(yōu)解,則丟棄掉,繼續(xù)搜索其它分支,直到搜索組的搜索結(jié)束,其中,保存的可能最優(yōu)解是所有產(chǎn)生的可能解中最優(yōu)的解。
[0022]具體地,所述負(fù)載狀態(tài)包括CPU使用情況與內(nèi)存使用情況。
[0023]具體地,所述讀取表的所有數(shù)據(jù)包的分布信息包括:數(shù)據(jù)包的大小和副本所在的節(jié)點(diǎn)地址。
[0024]本發(fā)明公開(kāi)了基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,通過(guò)Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài);Planner從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息;通過(guò)Planner讀取的所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)以及從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。即產(chǎn)生的Planner在盡力保證計(jì)算本地化的基礎(chǔ)上,能夠快速、高效的實(shí)現(xiàn)負(fù)載均衡。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0025]通過(guò)參考附圖會(huì)更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對(duì)本發(fā)明進(jìn)行任何限制,在附圖中:
[0026]圖1示出了本發(fā)明實(shí)施例中的基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法的步驟流程圖。

【具體實(shí)施方式】
[0027]下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。
[0028]計(jì)算本地化是將計(jì)算發(fā)到數(shù)據(jù)存儲(chǔ)的節(jié)點(diǎn)去執(zhí)行,盡量避免數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸?shù)狡渌?jié)點(diǎn)去計(jì)算,節(jié)約帶寬的占用。本發(fā)明數(shù)據(jù)分析引擎中的Planner,即執(zhí)行計(jì)劃產(chǎn)生器根據(jù)數(shù)據(jù)包的分析信息以及各個(gè)節(jié)點(diǎn)的負(fù)載狀況,選擇在哪些節(jié)點(diǎn)進(jìn)行掃描,以及掃描哪些數(shù)據(jù)包。
[0029]為了更好的理解與應(yīng)用本發(fā)明提出的基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,以如下附圖示例進(jìn)行詳細(xì)說(shuō)明。
[0030]如圖1所示,本發(fā)明提供了基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,具體包括以下步驟:
[0031]步驟SI =Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)。其中,負(fù)載狀態(tài)包括CPU、內(nèi)存的使用情況。
[0032]具體地,Planner將全部存活節(jié)點(diǎn)的負(fù)載狀態(tài)換算成相應(yīng)大小的數(shù)據(jù)包。其中,內(nèi)存空閑量最大的節(jié)點(diǎn)不需要進(jìn)行換算成相應(yīng)大小的數(shù)據(jù)包,對(duì)于其他節(jié)點(diǎn)預(yù)先分配一個(gè)數(shù)據(jù)包,但是數(shù)據(jù)包的大小不相同,且計(jì)算數(shù)據(jù)包大小的規(guī)則為:首先找到空閑內(nèi)存量最大的節(jié)點(diǎn),將其空閑內(nèi)存值記為Mmax ;以及分別計(jì)算其它節(jié)點(diǎn)的數(shù)據(jù)包的大小,等于Mmax-Mfree其中,Mf_為當(dāng)前機(jī)器的空閑內(nèi)存量。因此,Planner在后續(xù)分配數(shù)據(jù)包時(shí),會(huì)給負(fù)載重的節(jié)點(diǎn)減少分配任務(wù),給負(fù)載輕的節(jié)點(diǎn)增多分配任務(wù)。
[0033]步驟S2:Planner從Name Node (名稱(chēng)節(jié)點(diǎn))上讀取表的所有數(shù)據(jù)包的分布信息。其中,包括:數(shù)據(jù)包的大小,副本所在的節(jié)點(diǎn)地址,通常HDFS的備份因子是3,所以通常每個(gè)數(shù)據(jù)包都有三個(gè)副本。
[0034]具體地,Planner發(fā)現(xiàn)沒(méi)有運(yùn)行在數(shù)據(jù)分析引擎的節(jié)點(diǎn)地址,會(huì)將其刪除。其中,某些Data Node (數(shù)據(jù)節(jié)點(diǎn))上沒(méi)有安裝數(shù)據(jù)分析引擎或者數(shù)據(jù)分析引擎崩潰的情況,也會(huì)執(zhí)行上述操作。
[0035]進(jìn)一步地,如果副本所在的節(jié)點(diǎn)地址列表是空的,則該數(shù)據(jù)包的副本所在的機(jī)器上沒(méi)有運(yùn)行數(shù)據(jù)分析引擎,則只能通過(guò)遠(yuǎn)程讀取,即只能將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送到計(jì)算所在的節(jié)點(diǎn)上,將副本地址設(shè)置成所有存活的數(shù)據(jù)分析引擎的地址;如果副本所在的節(jié)點(diǎn)地址列表不是空的,則不會(huì)添加其它的數(shù)據(jù)分析引擎地址到地址列表里。上述操作在后續(xù)做負(fù)載均衡時(shí),選取的執(zhí)行計(jì)算節(jié)點(diǎn),也是數(shù)據(jù)存儲(chǔ)的節(jié)點(diǎn),避免了執(zhí)行計(jì)算的節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)從其它節(jié)點(diǎn)遠(yuǎn)程讀取數(shù)據(jù)。
[0036]更進(jìn)一步地,Planner將所有需要遠(yuǎn)程讀取的數(shù)據(jù)包放在數(shù)據(jù)包隊(duì)列的末尾,方便在后面分組的時(shí)候,將遠(yuǎn)程讀取的數(shù)據(jù)包分給負(fù)載輕的節(jié)點(diǎn),比如那些沒(méi)有存儲(chǔ)數(shù)據(jù)包,并且安裝有數(shù)據(jù)分析引擎的節(jié)點(diǎn)。如果所有的Data Node上都安裝有數(shù)據(jù)分析引擎,則不會(huì)有遠(yuǎn)程讀取的數(shù)據(jù)包。
[0037]步驟S3:通過(guò)Planner讀取的所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)以及從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。
[0038]具體地,如果Planner直接通過(guò)回溯算法來(lái)執(zhí)行,能得到最優(yōu)的結(jié)果,但是時(shí)間的花費(fèi)成本非常大,甚至超過(guò)查詢(xún)語(yǔ)句的執(zhí)行時(shí)間;如果Planner用貪心算法來(lái)執(zhí)行,得到的結(jié)果質(zhì)量較差,導(dǎo)致分配任務(wù)時(shí)產(chǎn)生傾斜性,任務(wù)分配不均勻嚴(yán)重。故本發(fā)明提出的Planner通過(guò)迭代式回溯算法來(lái)執(zhí)行實(shí)現(xiàn)負(fù)載均衡。
[0039]進(jìn)一步地,在本發(fā)明中利用迭代式回溯算法使用到的參數(shù)及函數(shù)包括:數(shù)據(jù)包量的平均值、可能最優(yōu)解、評(píng)價(jià)函數(shù)A、評(píng)價(jià)函數(shù)B以及剪枝函數(shù)。
[0040]具體地,在本發(fā)明中利用迭代式回溯算法使用到的參數(shù)為:數(shù)據(jù)包量的平均值為平均每臺(tái)機(jī)器應(yīng)該處理的數(shù)據(jù)包的數(shù)據(jù)量。其中,所有數(shù)據(jù)包的大小的總和,包括通過(guò)負(fù)載狀態(tài)換算出來(lái)的數(shù)據(jù)包,再除以機(jī)器的數(shù)量。單位為MB。例如:有個(gè)5個(gè)數(shù)據(jù)包,大小分別為800MB,600MB,700MB,850MB,400MB,集群共有4臺(tái)機(jī)器,且內(nèi)存空閑量一樣,即(800+600+700+850+400) /4,則數(shù)據(jù)包均值為837MB,取整,省略小數(shù);可能最優(yōu)解用于暫時(shí)存放已經(jīng)產(chǎn)生的解中評(píng)價(jià)值最低的一個(gè)。如果后續(xù)產(chǎn)生了評(píng)價(jià)更低的解,則用新的解覆蓋上述解,用新的解作為可能最優(yōu)解,直到遍歷所有的解,將這個(gè)可能最優(yōu)解作為最終結(jié)果進(jìn)行返回。
[0041]具體地,在本發(fā)明中利用迭代式回溯算法使用到的函數(shù)為:評(píng)價(jià)函數(shù)A用于評(píng)價(jià)新產(chǎn)生的解,值越低越好。本發(fā)明選擇采用的是計(jì)算標(biāo)準(zhǔn)方差的計(jì)算方法,數(shù)據(jù)傾斜大的解,標(biāo)準(zhǔn)方差會(huì)很大,數(shù)據(jù)分布比較均勻的解,標(biāo)準(zhǔn)方差會(huì)比較小。Planner選擇利用數(shù)據(jù)包量的平均值計(jì)算標(biāo)準(zhǔn)方法。本發(fā)明的Planner是根據(jù)前面幾組數(shù)據(jù)包的分配結(jié)果和當(dāng)前組將要分配的數(shù)據(jù)包的數(shù)據(jù)量來(lái)進(jìn)行計(jì)算的,Planner使用上述這種方法可以使之前分配的信息對(duì)后續(xù)數(shù)據(jù)包的分配產(chǎn)生影響,且上述分配方式能讓每組數(shù)據(jù)包的分配不會(huì)彼此獨(dú)立,使得分配的數(shù)據(jù)量更接近均衡;評(píng)價(jià)函數(shù)B用于評(píng)價(jià)中間解。其中,評(píng)價(jià)值越低越好,本發(fā)明的Planner計(jì)算分配數(shù)據(jù)包的量高于數(shù)據(jù)包量的平均值的節(jié)點(diǎn)的標(biāo)準(zhǔn)方差,且進(jìn)一步地,剪枝函數(shù)會(huì)使用評(píng)價(jià)函數(shù)B,本發(fā)明只計(jì)算超過(guò)數(shù)據(jù)包量的平均值的節(jié)點(diǎn),是因?yàn)樵诤竺鎳L試分配數(shù)據(jù)包時(shí),大于均值的節(jié)點(diǎn)會(huì)使評(píng)價(jià)值越來(lái)越大,且為評(píng)價(jià)值的下限,即使出現(xiàn)小于均值的節(jié)點(diǎn)使評(píng)價(jià)值越來(lái)越小,但也不會(huì)小于上述的下限;剪枝函數(shù)為在產(chǎn)生解的過(guò)程中,提前去掉不可能的解。其中,如果中間解的評(píng)價(jià)值大于可能最優(yōu)解的評(píng)價(jià)值,則該分支不可能產(chǎn)生更優(yōu)的解,所以剪掉該分支,不再繼續(xù)向下搜索;如果可能最優(yōu)解的評(píng)價(jià)值為-1,則說(shuō)明還沒(méi)有產(chǎn)生可能最優(yōu)解,該分支不能被剪掉,這種操作就保證了不管解的評(píng)價(jià)值有多不理想,都會(huì)至少產(chǎn)生一個(gè)解。
[0042]更進(jìn)一步地,本發(fā)明提出的Planner通過(guò)迭代式回溯算法來(lái)執(zhí)行實(shí)現(xiàn)負(fù)載均衡操作步驟如下:
[0043]步驟S31 =Planner將所有的數(shù)據(jù)包分成N組,每組M個(gè)數(shù)據(jù)包,其中,需要遠(yuǎn)程讀取的數(shù)據(jù)包放在最后面的幾個(gè)組里。
[0044]步驟S32:將可能最優(yōu)解初始化為空,其評(píng)價(jià)值設(shè)為-1。
[0045]步驟S33:從第一組開(kāi)始,每向前搜索一步,便用剪枝函數(shù)判斷該條分支是否有可能產(chǎn)生更優(yōu)的解。
[0046]步驟S34:如果該分支不能產(chǎn)生更優(yōu)解則剪掉該分支,后退一步,用剪枝函數(shù)尋找到可能產(chǎn)生更優(yōu)解的其它分支,繼續(xù)搜索。其中,對(duì)于不是必須要遠(yuǎn)程讀取的數(shù)據(jù)包,如步驟2提供的節(jié)點(diǎn)地址都是數(shù)據(jù)包實(shí)際存儲(chǔ)的地址,這就保證該算法在搜索解的過(guò)程中,選取的下發(fā)計(jì)算任務(wù)的節(jié)點(diǎn)地址,都是數(shù)據(jù)包實(shí)際存儲(chǔ)的地址,且無(wú)論前進(jìn)還是后退,都會(huì)用剪枝函數(shù),這樣避免搜索其它分支。
[0047]步驟S35:搜索到此組數(shù)據(jù)包隊(duì)列的末尾,產(chǎn)生新的解。
[0048]步驟S36:利用評(píng)價(jià)函數(shù)A計(jì)算新解的評(píng)價(jià)值。
[0049]步驟S37:如果可能最優(yōu)解的評(píng)價(jià)值為-1,則將新產(chǎn)生的解保存為可能最優(yōu)解;如果評(píng)價(jià)值小于可能最優(yōu)解,則判定新產(chǎn)生的解更好,則將新產(chǎn)生的解保存為可能最優(yōu)解;如果大于可能最優(yōu)解,則丟棄掉。
[0050]步驟S38 =Planner根據(jù)所有的數(shù)據(jù)包的分配結(jié)果和當(dāng)前組將要分配的數(shù)據(jù)包的數(shù)據(jù)量進(jìn)行計(jì)算的,其中,Planner使用S31-S37上述這種方法可以使之前分配的信息對(duì)后續(xù)數(shù)據(jù)包的分配產(chǎn)生影響,且分配方式能讓每組數(shù)據(jù)包的分配不會(huì)彼此獨(dú)立,使得分配的數(shù)據(jù)量更接近均衡。
[0051]進(jìn)一步地,步驟S37還包括:如果評(píng)價(jià)值大于可能最優(yōu)解,則丟棄掉,然后后退一步,繼續(xù)搜索其它分支,直到此組的搜索結(jié)束之后,之前保存的可能最優(yōu)解是所有產(chǎn)生的可能解中最優(yōu)的解。
[0052]更進(jìn)一步地,在搜索解的過(guò)程中,使用多線程并發(fā)的方式,這樣可以充分利用系統(tǒng)資源,減少總的運(yùn)算時(shí)間,讀取當(dāng)前系統(tǒng)CPU的核心數(shù),為K個(gè),將每組數(shù)據(jù)包的解空間,拆解成K個(gè)彼此獨(dú)立的分支,每個(gè)線程處理一個(gè)分支,每個(gè)分支都會(huì)產(chǎn)生一個(gè)可能最優(yōu)解,即從K個(gè)可能最優(yōu)解選取評(píng)價(jià)值最小的,作為可能最優(yōu)解。其中,拆解方法為:假定當(dāng)前這組數(shù)據(jù)包的副本數(shù)是-FpFhFf.,其中,F(xiàn)1表示第一個(gè)數(shù)據(jù)包的備份數(shù)量,F(xiàn)2表示第二個(gè)數(shù)據(jù)包的備份數(shù)量,如果F1小于K*2,則取下一個(gè),直到找到i滿(mǎn)足= K*2并且¥&*&*...Fi+1>K*2,則按照F1, F2, F^Fi來(lái)拆分解。例如:假設(shè)這個(gè)表有5個(gè)數(shù)據(jù)包,i的最大值是數(shù)據(jù)包的個(gè)數(shù)-1,即i的最大值是5-1,通常HDFS的備份因子是3,所以F1 =F2 = F3 = F4 = F5 = 3,假設(shè)當(dāng)前系統(tǒng)CPU核心數(shù)是5,即K = 5,假定集群只有三臺(tái)機(jī)器,O表不O號(hào)機(jī)器,I表不I號(hào)機(jī)器,2表不2號(hào)機(jī)器,這個(gè)五個(gè)數(shù)據(jù)包在這三臺(tái)機(jī)器上都有一個(gè)副本,解空間如下:
[0053]O, I, 2
[0054]O, I, 2
[0055]O, I, 2
[0056]O, I, 2
[0057]O, I, 2
[0058]其中,F(xiàn)3F2〈= K*2<F1*F2*F3,即 3*3〈5*2〈3*3*3,所以 i = 2,共啟動(dòng) 9 個(gè)線程,第一個(gè)線程只處理0,O這個(gè)分支,即第一個(gè)線程的前面兩個(gè)數(shù)據(jù)包必須是O號(hào)節(jié)點(diǎn)和O號(hào)節(jié)點(diǎn)上處理,后面三個(gè)數(shù)據(jù)包可以根據(jù)任務(wù)分配的平衡情況,考慮在O號(hào)、I號(hào)、2號(hào)節(jié)點(diǎn)上處理;第二個(gè)線程處理0,I這個(gè)分支,即第二個(gè)線程的前面兩個(gè)數(shù)據(jù)包必須是O號(hào)節(jié)點(diǎn)和I號(hào)節(jié)點(diǎn)上處理,后面三個(gè)數(shù)據(jù)包可以根據(jù)任務(wù)分配的平衡情況,考慮在O號(hào)、I號(hào)、2號(hào)節(jié)點(diǎn)上處理;第三個(gè)線程處理0,2這個(gè)分支;第四個(gè)線程處理I,O這個(gè)分支;第五個(gè)線程處理1,I這個(gè)分支;第六個(gè)線程處理1,2這個(gè)分支;第七個(gè)處理2,O ;第八個(gè)處理2,I ;第九個(gè)處理2,2。這個(gè)算法的優(yōu)勢(shì)為當(dāng)數(shù)據(jù)量比較大,數(shù)據(jù)包比較多時(shí),能夠快速的實(shí)現(xiàn)負(fù)載均衡,同時(shí),還可以根據(jù)機(jī)器的性能,調(diào)整每組數(shù)據(jù)包的個(gè)數(shù)M,M越大,得到的解可能會(huì)越好。
[0059]本發(fā)明公開(kāi)了基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,通過(guò)Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài);Planner從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息;通過(guò)Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài),從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息,利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。即產(chǎn)生的Planner在盡力保證計(jì)算本地化的基礎(chǔ)上,能夠快速、高效的實(shí)現(xiàn)負(fù)載均衡。
[0060]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
【權(quán)利要求】
1.基于HDFS的迭代式回溯算法的負(fù)載均衡與計(jì)算本地化方法,其特征在于,包括具體以下步驟: 51=Planner讀取所有數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài); 52=Planner從名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息; 53:通過(guò)Planner讀取的數(shù)據(jù)分析引擎系統(tǒng)中全部存活節(jié)點(diǎn)的IP地址和負(fù)載狀態(tài)以及從所述名稱(chēng)節(jié)點(diǎn)上讀取表的所有數(shù)據(jù)包的分布信息利用迭代式回溯算法實(shí)現(xiàn)負(fù)載均衡。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟SI還包括:Planner將全部存活節(jié)點(diǎn)的負(fù)載狀態(tài)換算為相對(duì)應(yīng)大小的數(shù)據(jù)包。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟SI還包括:內(nèi)存空間量最大的節(jié)點(diǎn)不需要進(jìn)行換算為相對(duì)應(yīng)大小的數(shù)據(jù)包。
4.如權(quán)利要求2所述的方法,其特征在于,所述Planner將全部存活節(jié)點(diǎn)的負(fù)載狀態(tài)換算為相對(duì)應(yīng)大小的數(shù)據(jù)包的具體過(guò)程為:找到空閑內(nèi)存量最大的節(jié)點(diǎn),將其空閑內(nèi)存值記為Mmax ;以及分別計(jì)算其它節(jié)點(diǎn)的數(shù)據(jù)包的大小,等于Iax-Mtoe其中,Mf_為當(dāng)前機(jī)器的空閑內(nèi)存量。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟S2還包括:如果副本所在的節(jié)點(diǎn)地址列表為空,則該數(shù)據(jù)包的副本所在的機(jī)器上沒(méi)有運(yùn)行數(shù)據(jù)分析引擎,通過(guò)遠(yuǎn)程讀取,將副本地址設(shè)置成所有存活的數(shù)據(jù)分析引擎的地址;如果副本所在的節(jié)點(diǎn)地址列表不為空,則不添加數(shù)據(jù)分析引擎地址到地址列表中。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟S3還包括: 531:Planner將所有的數(shù)據(jù)包分成N組,每組M個(gè)數(shù)據(jù)包; 532:將可能最優(yōu)解初始化為空,評(píng)價(jià)值設(shè)為-1 ; 533:從第一組開(kāi)始,每向前搜索一步,便用剪枝函數(shù)判斷該條分支是否有可能產(chǎn)生更優(yōu)的解; S34:如果該分支不能產(chǎn)生更優(yōu)解則剪掉該分支,后退一步,用剪枝函數(shù)尋找到可能產(chǎn)生更優(yōu)解的其它分支,繼續(xù)搜索; 535:搜索到此組數(shù)據(jù)包隊(duì)列的末尾,產(chǎn)生新的解; 536:利用評(píng)價(jià)函數(shù)A計(jì)算新解的評(píng)價(jià)值; 537:如果可能最優(yōu)解的評(píng)價(jià)值為-1,則將所述新產(chǎn)生的解保存為可能最優(yōu)解;如果評(píng)價(jià)值小于可能最優(yōu)解,則判定新產(chǎn)生的解更好,則將所述新產(chǎn)生的解保存為可能最優(yōu)解;如果評(píng)價(jià)值大于可能最優(yōu)解,則丟棄掉。 S38:Planner根據(jù)所有的數(shù)據(jù)包的分配結(jié)果和當(dāng)前組將要分配的數(shù)據(jù)包的數(shù)據(jù)量進(jìn)行計(jì)算的,其中,Planner使用S31-S37上述這種方法可以使之前分配的信息對(duì)后續(xù)數(shù)據(jù)包的分配產(chǎn)生影響,且分配方式能讓每組數(shù)據(jù)包的分配不會(huì)彼此獨(dú)立,使得分配的數(shù)據(jù)量更接近均衡。
7.如權(quán)利要求6所述的方法,其特征在于,所述步驟S37還包括:如果評(píng)價(jià)值大于可能最優(yōu)解,則丟棄掉,繼續(xù)搜索其它分支,直到搜索組的搜索結(jié)束,其中,保存的可能最優(yōu)解是所有產(chǎn)生的可能解中最優(yōu)的解。
8.如權(quán)利要求1所述的方法,其特征在于,所述負(fù)載狀態(tài)包括CPU使用情況與內(nèi)存使用情況。
9.如權(quán)利要求1所述的方法,其特征在于,所述讀取表的所有數(shù)據(jù)包的分布信息包括:數(shù)據(jù)包的大小和副本所在的節(jié)點(diǎn)地址。
【文檔編號(hào)】H04L29/08GK104331439SQ201410575719
【公開(kāi)日】2015年2月4日 申請(qǐng)日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】劉垚, 孔令雷, 王小玉, 霍衛(wèi)平, 金正皓 申請(qǐng)人:北京東方國(guó)信科技股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
林周县| 双流县| 东乡族自治县| 青神县| 开平市| 双峰县| 小金县| 固镇县| 大田县| 吕梁市| 大荔县| 永州市| 印江| 建瓯市| 金湖县| 织金县| 启东市| 花莲县| 天长市| 新蔡县| 石渠县| 韩城市| 高碑店市| 三亚市| 南丹县| 获嘉县| 志丹县| 临沭县| 宝丰县| 文水县| 灵川县| 文成县| 昆山市| 镇坪县| 木里| 新乐市| 岳普湖县| 宜兰市| 甘南县| 霍邱县| 新沂市|