一種基于hdfs的動(dòng)態(tài)副本管理方法
【專利摘要】本發(fā)明涉及一種基于HDFS的動(dòng)態(tài)副本管理方法,包括副本放置策略、動(dòng)態(tài)副本創(chuàng)建策略和動(dòng)態(tài)副本刪除策略,所述副本放置策略包括主副本缺省副本的放置策略以及其他副本的放置策略,是一種主動(dòng)調(diào)平的策略,在副本創(chuàng)建開始充分考慮負(fù)載平衡的問題,主動(dòng)地將副本放置在負(fù)載最輕的位置。本發(fā)明針對(duì)HDFS處理熱點(diǎn)數(shù)據(jù)效率低下問題,提出了一種動(dòng)態(tài)副本處理方法,通過熱點(diǎn)數(shù)據(jù)動(dòng)態(tài)對(duì)其創(chuàng)建副本。將判斷熱點(diǎn)數(shù)據(jù)與N次歷史記錄相結(jié)合,能提高準(zhǔn)確性,并且使副本的創(chuàng)建具有可預(yù)見性并提出了動(dòng)態(tài)副本刪除策略,可以有效提高整個(gè)HDFS集群的并發(fā)性能。
【專利說明】一種基于HDFS的動(dòng)態(tài)副本管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及當(dāng)前大數(shù)據(jù)Hadoop生態(tài)系統(tǒng)中HDFS領(lǐng)域,特別是涉及一種基于HDFS的動(dòng)態(tài)副本管理方法。
技術(shù)背景
[0002]Hadoop Distributed File System,簡稱HDFS,是一個(gè)分布式文件系統(tǒng)。GFS 也就是google File System, google公司為了存儲(chǔ)海量搜索數(shù)據(jù)而設(shè)計(jì)的專用文件系統(tǒng)。
[0003]隨著互聯(lián)網(wǎng)的快速發(fā)展,數(shù)據(jù)量呈現(xiàn)指數(shù)級(jí)增長,為了適應(yīng)這種情況,如今已經(jīng)出現(xiàn)了很多大的服務(wù)器架構(gòu)如數(shù)據(jù)中心以及云計(jì)算。在大數(shù)據(jù)處理方面,Google的GFS為處理大文件提供了有效的方法,而Hadoop下的文件系統(tǒng)HDFS作為GFS開源實(shí)現(xiàn),實(shí)現(xiàn)了 GFS的絕大多數(shù)功能,是在現(xiàn)階段大數(shù)據(jù)處理領(lǐng)域內(nèi)廣泛使用的一種分布式并行文件系統(tǒng),那么在并行文件系統(tǒng)中,副本是其重要的組成部分。設(shè)計(jì)分布式并行文件系統(tǒng)的重要的作用就是協(xié)調(diào)各個(gè)廉價(jià)低端的節(jié)點(diǎn)完成性能較高或工作量較大的任務(wù),將可靠性差的節(jié)點(diǎn)組成一個(gè)高可靠性的系統(tǒng),實(shí)現(xiàn)這一目標(biāo)的途徑既是建立副本,怎么樣管理這些副本資源,以及副本存放策略,增減策略等,是分布式并行文件系統(tǒng)的重要任務(wù)之一。數(shù)據(jù)管理包括數(shù)據(jù)分布方式、副本管理、訪問控制等,其中副本管理的目的是:多副本提高容錯(cuò)性、提高數(shù)據(jù)處理的并發(fā)性以提高性能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是:當(dāng)前大數(shù)據(jù)Hadoop生態(tài)系統(tǒng)中HDFS急需解決的一個(gè)重要的問題即靜態(tài)副本策略無法滿足熱點(diǎn)數(shù)據(jù)訪問的問題。具體說來主要解決以下幾個(gè)問題:
I)數(shù)據(jù)類型及粒度
HDFS中支持大文件,但又需要考慮對(duì)于小的文件如何處理,是否支持。還有大文件每個(gè)分片的大小,即粒度問題。分片太小,不利于Hadoop框架的流式讀,不能發(fā)揮Hadoop的優(yōu)勢,分片太大,又不利于數(shù)據(jù)的并行處理。
[0005]2)副本創(chuàng)建個(gè)數(shù)
副本創(chuàng)建個(gè)數(shù)即副本冗余度問題,指同一邏輯副本名對(duì)應(yīng)的物理副本數(shù)量。對(duì)于熱點(diǎn)數(shù)據(jù),可以動(dòng)態(tài)創(chuàng)建副本,動(dòng)態(tài)創(chuàng)建副本需要考慮創(chuàng)建多少個(gè)副本,副本創(chuàng)建過少,不能有效地提高系統(tǒng)性能,副本創(chuàng)建過多,又會(huì)浪費(fèi)存儲(chǔ)空間。
[0006]3)副本創(chuàng)建時(shí)機(jī)
副本創(chuàng)建的時(shí)機(jī)是指只有在滿足特定條件后,副本管理模塊才會(huì)執(zhí)行副本創(chuàng)建任務(wù)。副本管理模塊定期檢查對(duì)數(shù)據(jù)的訪問請(qǐng)求次數(shù),當(dāng)副本管理模塊發(fā)現(xiàn)在一定時(shí)期內(nèi),某個(gè)文件訪問次數(shù)超過一個(gè)特定閾值,則自動(dòng)觸發(fā)副本創(chuàng)建功能。
[0007]4)副本放置
副本創(chuàng)建的一個(gè)關(guān)鍵問題是副本放在何處,即副本的放置策略。HDFS中副本創(chuàng)建又分為主副本缺省副本的創(chuàng)建,以及動(dòng)態(tài)創(chuàng)建的副本。不同的副本放置策略會(huì)很大程度的影響系統(tǒng)的性能。
[0008]5)副本的一致性
HDFS系統(tǒng)提供弱化的一致性,但是在文件寫入時(shí),對(duì)各個(gè)副本提供檢查和校驗(yàn),仍是一致性要求所必需的。
[0009]本發(fā)明所采用的技術(shù)方案為:一種基于HDFS的動(dòng)態(tài)副本管理方法,包括副本放置策略、動(dòng)態(tài)副本創(chuàng)建策略和動(dòng)態(tài)副本刪除策略,其中,副本放置策略包括主副本缺省副本的放置策略以及其他副本的放置策略,是一種主動(dòng)調(diào)平的策略,在副本創(chuàng)建一開始就充分考慮負(fù)載平衡的問題,主動(dòng)地將副本放置在最佳位置,即負(fù)載最輕的位置,盡可能消除負(fù)載不平衡的潛在風(fēng)險(xiǎn),該策略避免了創(chuàng)建的副本在整個(gè)存儲(chǔ)系統(tǒng)內(nèi)的任意放置,而是根據(jù)存儲(chǔ)節(jié)點(diǎn)的計(jì)算能力及已經(jīng)存儲(chǔ)的數(shù)據(jù)塊的多少來判斷最佳位置。
[0010]其中,主副本以及缺省副本放置策略為:
出于容錯(cuò)的考慮,每個(gè)HDFS中的數(shù)據(jù)塊,在文件被寫入文件系統(tǒng)時(shí),默認(rèn)將會(huì)有I個(gè)主副本和兩個(gè)缺省副本。其中主副本和其中一個(gè)缺省副本保存在本地機(jī)架(上傳文件所在的同一個(gè)路由器下的集群),另一個(gè)缺省副本放在除本地機(jī)架外其他任意一個(gè)機(jī)架上。
[0011]每個(gè)機(jī)架內(nèi)機(jī)器的選擇有兩個(gè)參數(shù)指標(biāo):
Φ已存儲(chǔ)數(shù)據(jù)塊多少 S: cpu處理性能
設(shè)第個(gè)i機(jī)器存儲(chǔ)數(shù)據(jù)塊的數(shù)目為Ni,cpu處理性能為CAi,設(shè)變量
【權(quán)利要求】
1.一種基于HDFS的動(dòng)態(tài)副本管理方法,包括副本放置策略、動(dòng)態(tài)副本創(chuàng)建策略和動(dòng)態(tài)副本刪除策略,其特征在于:所述副本放置策略包括主副本缺省副本的放置策略以及其他副本的放置策略,是一種主動(dòng)調(diào)平的策略,在副本創(chuàng)建開始充分考慮負(fù)載平衡的問題,主動(dòng)地將副本放置在負(fù)載最輕的位置。
2.根據(jù)權(quán)利要求1所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:副本放置策略中,主副本以及缺省副本放置策略為:每個(gè)HDFS中的數(shù)據(jù)塊,在文件被寫入文件系統(tǒng)時(shí),默認(rèn)I個(gè)主副本和兩個(gè)缺省副本,其中主副本和其中一個(gè)缺省副本保存在本地機(jī)架,另一個(gè)缺省副本放在除本地機(jī)架外其他任意一個(gè)機(jī)架上。
3.根據(jù)權(quán)利要求2所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:機(jī)架內(nèi)機(jī)器的選擇有兩個(gè)參數(shù)指標(biāo): I)已存儲(chǔ)數(shù)據(jù)塊多少 s' Cpu處理性能 其中,設(shè)第個(gè)i機(jī)器存儲(chǔ)數(shù)據(jù)塊的數(shù)目為Ni, cpu處理性能為CAi,設(shè)變量
4.根據(jù)權(quán)利要求1所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:所述副本放置策略中,其他副本是根據(jù)用戶對(duì)文件的歷史訪問記錄,選擇訪問次數(shù)超過設(shè)定閾值的熱點(diǎn)數(shù)據(jù)對(duì)其創(chuàng)建的副本,具有動(dòng)態(tài)創(chuàng)建的特性,放置策略為:其他副本的放置首先找出用戶訪問最多的機(jī)架,然后選擇一臺(tái)最合適的機(jī)器,此策略稱為最佳機(jī)架策略,能將數(shù)據(jù)文件復(fù)制到最需要的地方,其中,每個(gè)機(jī)器都保存著每個(gè)文件的歷史訪問記錄,記錄中包括每個(gè)文件被請(qǐng)求的次數(shù),每隔一定時(shí)間,檢查歷史訪問記錄查找是否有對(duì)某個(gè)文件的請(qǐng)求次數(shù)超過了事先指定的閾值,如果存在這樣的文件,那么就計(jì)算總訪問次數(shù)最多的那個(gè)機(jī)架,此機(jī)架被稱為最佳機(jī)架,系統(tǒng)在此機(jī)架上選擇負(fù)載最輕的節(jié)點(diǎn)創(chuàng)建該文件的副本,并清除關(guān)于該文件的歷史訪問記錄,重新進(jìn)行統(tǒng)計(jì)。
5.根據(jù)權(quán)利要求1所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:所述動(dòng)態(tài)副本創(chuàng)建策略為一種基于歷史訪問記錄的副本創(chuàng)建策略,通過對(duì)某個(gè)數(shù)據(jù)前N次訪問記錄來判斷它是否為熱點(diǎn)數(shù)據(jù),并對(duì)其創(chuàng)建副本。
6.根據(jù)權(quán)利要求5所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:創(chuàng)建副本的步驟如下: O計(jì)算前次的動(dòng)態(tài)訪問特征函數(shù)
7.根據(jù)權(quán)利要求1-6任一所述的一種基于HDFS的動(dòng)態(tài)副本管理方法,其特征在于:所述副本刪除策略,采用簡化的基于歷史訪問記錄的動(dòng)態(tài)副本刪除策略,若一個(gè)文件除了主副本和缺省副本外,還有其他副本,并且在N個(gè)周期內(nèi),文件的訪問次數(shù)小于一個(gè)閾值NL,則刪除掉它的一個(gè)其他副本。
8.根據(jù)上述任一權(quán)利要求所述的一種動(dòng)態(tài)副本管理系統(tǒng),其特征在于:由物理層、執(zhí)行層、策略層和應(yīng)用層組成,物理層主要由存儲(chǔ)在DataNode上的物理副本數(shù)據(jù)塊、邏輯副本數(shù)據(jù)和存儲(chǔ)在NameNode上的副本元數(shù)據(jù)構(gòu)成,為數(shù)據(jù)訪問提供數(shù)據(jù)源;執(zhí)行層包括副本節(jié)點(diǎn)選擇模塊、副本選擇模塊及副本校驗(yàn)?zāi)K;通過創(chuàng)建足夠多的副本數(shù)目實(shí)現(xiàn)系統(tǒng)的高可用性的策略目標(biāo);通過優(yōu)化選擇訪問物理副本節(jié)點(diǎn)、副本的合理放置策略、適時(shí)合理的刪除副本,共同實(shí)現(xiàn)性能優(yōu)化的策略目標(biāo);策略層包括寫文件時(shí)副本放置策略和副本增刪策略,寫文件時(shí)副本放置策略由節(jié)點(diǎn)選擇模塊和副本校驗(yàn)?zāi)K組成,副本增刪策略由副本節(jié)點(diǎn)選擇模塊、副本選擇模塊和副本校驗(yàn)?zāi)K組成;用于為應(yīng)用層提供透明的副本放置和副本增刪服務(wù),應(yīng)用層主要是指系統(tǒng)所跑的應(yīng)用程序及用戶的實(shí)際訪問應(yīng)用。
【文檔編號(hào)】G06F17/30GK103631894SQ201310576782
【公開日】2014年3月12日 申請(qǐng)日期:2013年11月19日 優(yōu)先權(quán)日:2013年11月19日
【發(fā)明者】孟祥飛, 孫志云, 吳楠 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司