本發(fā)明涉及移動(dòng)通信網(wǎng)絡(luò)大數(shù)據(jù)優(yōu)化和規(guī)劃
技術(shù)領(lǐng)域:
,具體涉及一種基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法。
背景技術(shù):
:HadoopHDFS副本技術(shù)即分布式數(shù)據(jù)復(fù)制技術(shù),是分布式計(jì)算的一個(gè)重要組成部分。如圖1所示,該技術(shù)允許數(shù)據(jù)在多個(gè)服務(wù)器端共享,一個(gè)本地服務(wù)器可以存取不同物理地點(diǎn)的遠(yuǎn)程服務(wù)器上的數(shù)據(jù),也可以使所有的服務(wù)器均持有數(shù)據(jù)的拷貝。塊副本存放位置的選擇嚴(yán)重影響HDFS的可靠性和性能。HDFS采用機(jī)架敏感(rackawareness)的副本存放策略來(lái)提高數(shù)據(jù)的可靠性、可用性和網(wǎng)絡(luò)帶寬的利用率。一般情況下復(fù)制因子(文件的副本數(shù))為3,HDFS的副本放置策略是:將第一個(gè)副本放在本地節(jié)點(diǎn),將第二個(gè)副本放到本地機(jī)架上的另外一個(gè)節(jié)點(diǎn),而將第三個(gè)副本放到不同機(jī)架上的節(jié)點(diǎn)。上述的現(xiàn)有技術(shù)方案存在如下問(wèn)題:第一是,HDFS的默認(rèn)副本放置策略是一個(gè)隨機(jī)選擇策略,副本放置的最終狀態(tài)很難被控制。其具體表現(xiàn)如下:1)其是利用將副本放置在不同的機(jī)架上來(lái)達(dá)到高可靠性和數(shù)據(jù)塊的均勻分布存儲(chǔ)的,但如果數(shù)據(jù)中心只有一個(gè)機(jī)架,那么該副本放置策略就退化為一個(gè)隨機(jī)選擇策略,數(shù)據(jù)塊的均勻分布和可靠性就很難被保證。2)其并沒(méi)有考慮到節(jié)點(diǎn)負(fù)載的情況,即使有一個(gè)節(jié)點(diǎn)的負(fù)載遠(yuǎn)高于其他節(jié)點(diǎn),按照默認(rèn)的副本放置策略,這個(gè)節(jié)點(diǎn)還是有可能被持續(xù)的寫入數(shù)據(jù)。3)其主要是對(duì)前三個(gè)副本的放置位置做出了考慮,如果需要放置更多的副本,則后面的副本放置會(huì)采用隨機(jī)選擇的策略。第二是,當(dāng)然在HDFS系統(tǒng)中也有個(gè)叫均衡器(Balancer)的守護(hù)進(jìn)程。它會(huì)將數(shù)據(jù)塊從負(fù)載較高的節(jié)點(diǎn)移動(dòng)到負(fù)載較低的節(jié)點(diǎn)上,從而達(dá)到數(shù)據(jù)塊重新分配的目的,最終使得整個(gè)集群分布均衡。雖然均衡器能在一定程度上解決問(wèn)題,但是它也是存在缺陷的:1)它對(duì)于集群數(shù)據(jù)塊均衡的調(diào)節(jié)具有滯后性。2)均衡器的調(diào)節(jié)和數(shù)據(jù)塊的移動(dòng)都需要一定資源的消耗。第三是,Hadoop集群的建設(shè)和擴(kuò)容都是分階段進(jìn)行的,隨著硬件的升級(jí)換代,服務(wù)器的配置必然會(huì)出現(xiàn)不同的配置情況。差異主要集中在CPU和硬盤上。比如:1)主流采用Inter的CPU,其中8C/10C主頻和緩存差別大,會(huì)影響Datanode處理性能,性能強(qiáng)的等待弱的。2)SATA數(shù)據(jù)盤的容量越來(lái)越大,目前主流的規(guī)格:?jiǎn)蜸ATA盤7200RPM4TB。Hadoop集群數(shù)據(jù)自動(dòng)均衡后,造成部分服務(wù)器的大容量磁盤空間浪費(fèi),無(wú)法使用。HDFS缺省的數(shù)據(jù)存儲(chǔ)策略,會(huì)采用同等的方式來(lái)選擇服務(wù)器,算法不夠靈活造成分配不均勻。因此,最終會(huì)使得所有Datanode服務(wù)器的空間使用基本相同。這樣會(huì)使得單節(jié)點(diǎn)磁盤空間總量小的服務(wù)器,其空間就會(huì)先滿。當(dāng)磁盤空間占用滿了之后,集群會(huì)采用失敗重試(重選)的方式來(lái)解決,這會(huì)導(dǎo)致很多上層應(yīng)用出現(xiàn)訪問(wèn)HDFS超時(shí)的情況。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的缺陷和不足,提供基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法,采用一種實(shí)時(shí)數(shù)據(jù)塊分布算法,對(duì)HDFS的副本放置策略做出適當(dāng)?shù)膬?yōu)化,使數(shù)據(jù)落地過(guò)程中始終達(dá)到集群數(shù)據(jù)塊負(fù)載均衡,并且盡量減少此過(guò)程帶來(lái)的額外資源消耗。本發(fā)明所述的基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法,它采用如下的方法步驟:步驟一:采用如下的選擇策略:chooseLocalStorage(本地)到chooseLocalRack(本機(jī)架)到chooseRemoteRack(遠(yuǎn)端機(jī)架)最后到chooseRandom(全集群);步驟二:在步驟一的基礎(chǔ)上,在現(xiàn)有技術(shù)的chooseRandom算法的基礎(chǔ)上,引入一個(gè)權(quán)重來(lái)調(diào)整隨機(jī)數(shù)在不同DataNode上的分布策略,將原有chooseRandom算法改造成如圖5所示算法;步驟三:步驟二中的陳述的權(quán)重是指:把可用存儲(chǔ)容量作為隨機(jī)選擇的一個(gè)權(quán)重因子,節(jié)點(diǎn)權(quán)重=1+(權(quán)重系數(shù)*存儲(chǔ)容量可用百分比);因而可用容量百分比大的節(jié)點(diǎn)就更容易被選擇作為存儲(chǔ)節(jié)點(diǎn)。步驟四:步驟三中所陳述的權(quán)重可由空間利用率來(lái)決定,通過(guò)權(quán)重分配算法進(jìn)行計(jì)算,其線性調(diào)整權(quán)重采用如下的計(jì)算公式:權(quán)重的大小和剩余空間利用率成線性關(guān)系:W=1+(r*c)。本發(fā)明有益效果為:本發(fā)明所述的基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法,采用一種實(shí)時(shí)數(shù)據(jù)塊分布算法,對(duì)HDFS的副本放置策略做出適當(dāng)?shù)膬?yōu)化,使數(shù)據(jù)落地過(guò)程中始終達(dá)到集群數(shù)據(jù)塊負(fù)載均衡,并且盡量減少此過(guò)程帶來(lái)的額外資源消耗?!靖綀D說(shuō)明】此處所說(shuō)明的附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,但并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定,在附圖中:圖1是本發(fā)明
背景技術(shù):
中HadoopHDFS副本技術(shù)示意圖;圖2是本發(fā)明中的選擇策略的拓?fù)浣Y(jié)構(gòu)示意圖;圖3是本發(fā)明的測(cè)試中動(dòng)態(tài)變化的權(quán)重示意圖;圖4是本發(fā)明中的權(quán)重/可用容量百分比走勢(shì)示意圖;圖5是本發(fā)明的算法流程圖;圖6是傳統(tǒng)的chooseRandom算法的流程圖?!揪唧w實(shí)施方式】下面將結(jié)合附圖以及具體實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明,其中的示意性實(shí)施例以及說(shuō)明僅用來(lái)解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。本具體實(shí)施方式所述的基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法,它采用如下的方法步驟:步驟一:如圖2所示,采用如下的選擇策略:chooseLocalStorage(本地)到chooseLocalRack(本機(jī)架)到chooseRemoteRack(遠(yuǎn)端機(jī)架)最后到chooseRandom(全集群);步驟二:在步驟一的基礎(chǔ)上,在現(xiàn)有技術(shù)的chooseRandom算法的基礎(chǔ)上,引入一個(gè)權(quán)重來(lái)調(diào)整隨機(jī)數(shù)在不同DataNode上的分布策略,將原有chooseRandom算法改造成如圖5所示算法;步驟三:步驟二中的陳述的權(quán)重是指:把可用存儲(chǔ)容量作為隨機(jī)選擇的一個(gè)權(quán)重因子,節(jié)點(diǎn)權(quán)重=1+(權(quán)重系數(shù)*存儲(chǔ)容量可用百分比);因而可用容量百分比大的節(jié)點(diǎn)就更容易被選擇作為存儲(chǔ)節(jié)點(diǎn)。步驟四:步驟三中所陳述的權(quán)重可由空間利用率來(lái)決定,通過(guò)權(quán)重分配算法進(jìn)行計(jì)算,其線性調(diào)整權(quán)重采用如下的計(jì)算公式:權(quán)重的大小和剩余空間利用率成線性關(guān)系:W=1+(r*c)。本發(fā)明的設(shè)計(jì)思想原理如下:本發(fā)明是在一種在原本chooseRandom算法的基礎(chǔ)上進(jìn)行優(yōu)化改造方法,原來(lái)的chooseRandom算法是如圖6所示算法;上述算法中,1)缺省是隨機(jī)的,不考慮任何其它因素。2)通過(guò)一個(gè)均勻分布的隨機(jī)數(shù)來(lái)選擇集群中的一個(gè)DataNode。本發(fā)明改造后的算法涉及以下方面:1)引入一個(gè)權(quán)重調(diào)整隨機(jī)數(shù)在不同DataNode上的分布策略;2)權(quán)重由可用空間利用率來(lái)決定;3)改動(dòng)過(guò)的算法是把可用存儲(chǔ)容量作為隨機(jī)選擇的一個(gè)權(quán)重因子,節(jié)點(diǎn)權(quán)重=1+(權(quán)重系數(shù)*存儲(chǔ)容量可用百分比)。這樣可用容量百分比大的節(jié)點(diǎn)就更容易被選擇作為存儲(chǔ)節(jié)點(diǎn)。這個(gè)功能是被系統(tǒng)層面調(diào)用,每次寫文件都會(huì)涉及調(diào)用如下程序流程:選擇算法只是每次操作單次選擇,若考慮空間利用率或其他動(dòng)態(tài)參數(shù),則選擇算法的結(jié)果也會(huì)是動(dòng)態(tài)變化的。本發(fā)明里權(quán)重分配算法:1)線性調(diào)整權(quán)重:權(quán)重的大小和剩余空間利用率成線性關(guān)系W=1+(r*c);Weight(nodeo):functiontocomputetheweightofanodew=1+(r*c)Wherewistheoutputweightofthenodeo,cpresentsfreevolumeofthenodeo,thevalueofcisbetween0and1risauserinputthreshold,thevalueofrisbetween0and10.Withthegrowthofr,thenodewithhighervolumewillgetlargerweight.Ifvalueofris0thenvolumeofthenodewillhavenoeffectonweightofnode.2)使用效果:相對(duì)來(lái)說(shuō),整體空間利用率有提升隨著數(shù)據(jù)的積累,容量小的主機(jī)權(quán)重在變小,且變化速度更快3)說(shuō)明:如圖3所示,本次測(cè)試時(shí),R=10;動(dòng)態(tài)變化的權(quán)重,并不能保證全部空間可以被100%利用。4)本發(fā)明的測(cè)試數(shù)據(jù)對(duì)比如下:HOSThost132host155host156host157host158總?cè)萘?G)total8101370165011001375測(cè)試前used%1.64%13.21%10.97%1.58%12.44%加權(quán)算法used%98%78%72%92%72%缺省算法預(yù)計(jì)used%100%59%49%74%59%本發(fā)明中著重提出了,在chooseRandom算法中把可用存儲(chǔ)容量作為隨機(jī)選擇的一個(gè)權(quán)重因子,節(jié)點(diǎn)權(quán)重=1+(權(quán)重系數(shù)*存儲(chǔ)容量可用百分比)。這樣可用容量百分比大的節(jié)點(diǎn)就更容易被選擇作為存儲(chǔ)節(jié)點(diǎn),從而使得本算法優(yōu)于現(xiàn)有的計(jì)算方法。本發(fā)明與現(xiàn)有技術(shù)方案相比,其技術(shù)優(yōu)點(diǎn)如下:1)通過(guò)調(diào)整算法,可以相對(duì)改善不同服務(wù)器的空間利用率情況。2)還可以根據(jù)現(xiàn)場(chǎng)的數(shù)據(jù)特點(diǎn)調(diào)整算法,改變空間利用率的均衡情況。3)本次改變只是調(diào)整了選擇算法本身,與寫文件等操作無(wú)關(guān),并不會(huì)引入性能問(wèn)題。本發(fā)明有益效果為:本發(fā)明所述的基于權(quán)重因子的HadoopHDFS數(shù)據(jù)塊分布優(yōu)化算法,采用一種實(shí)時(shí)數(shù)據(jù)塊分布算法,對(duì)HDFS的副本放置策略做出適當(dāng)?shù)膬?yōu)化,使數(shù)據(jù)落地過(guò)程中始終達(dá)到集群數(shù)據(jù)塊負(fù)載均衡,并且盡量減少此過(guò)程帶來(lái)的額外資源消耗。以上所述僅是本發(fā)明的較佳實(shí)施方式,故凡依本發(fā)明專利申請(qǐng)范圍所述的構(gòu)造、特征及原理所做的等效變化或修飾,均包括于本發(fā)明專利申請(qǐng)范圍內(nèi)。當(dāng)前第1頁(yè)1 2 3