范 濤,劉曉燕
(昆明理工大學(xué)信息自動(dòng)化學(xué)院,云南 昆明 650000)
HDFS糾刪碼技術(shù)指的是糾刪碼算法在 HDFS中的實(shí)現(xiàn),簡稱HDFS EC。糾刪碼技術(shù)是一種用于數(shù)據(jù)恢復(fù)的技術(shù)。通過糾刪碼(Erasure Code,EC)技術(shù),將原始數(shù)據(jù)經(jīng)過一定編碼分成若干較小的數(shù)據(jù)塊并保存在多個(gè)不同的存儲節(jié)點(diǎn)中。對于一個(gè)(n,k)糾刪碼(n>k),原始數(shù)據(jù)先被等分成k個(gè)大小相同的數(shù)據(jù)塊,再將k個(gè)數(shù)據(jù)塊經(jīng)過一定編碼生成n個(gè)數(shù)據(jù)塊,并保存在n個(gè)不同的存儲節(jié)點(diǎn)中,每次只需從n個(gè)數(shù)據(jù)塊中任意獲取k個(gè)數(shù)據(jù)塊并進(jìn)行解碼即可恢復(fù)原始數(shù)據(jù)。對于任意(ni,ki)糾刪碼(i = 1,2, …),只需滿足最大距離可分碼(Maximum Distance Separable code,MDS),即可使用糾刪碼對文件進(jìn)行編碼存儲[1]。它通過在原始數(shù)據(jù)中加入新的校驗(yàn)數(shù)據(jù),使得各個(gè)部分的數(shù)據(jù)產(chǎn)生關(guān)聯(lián)性。原始數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊都可以通過現(xiàn)有的數(shù)據(jù)塊進(jìn)行恢復(fù),規(guī)則如下:(1)如果校驗(yàn)碼數(shù)據(jù)塊發(fā)生錯(cuò)誤,通過對原始數(shù)據(jù)塊進(jìn)行編碼重新生成。(2)如果原始數(shù)據(jù)塊發(fā)生錯(cuò)誤,通過校驗(yàn)數(shù)據(jù)塊的解碼可以重新生成。它對于HDFS帶來的最大改變是可以使得HDFS不再依靠多副本機(jī)制來達(dá)到容錯(cuò)的效果。多副本機(jī)制的一個(gè)很大弊端在于極大浪費(fèi)存儲空間,HDFS糾刪碼技術(shù)的引入將會極大地改善這個(gè)問題。在Hadoop EC的設(shè)計(jì)中,提出了以下幾點(diǎn)實(shí)現(xiàn)目標(biāo):(1)存儲空間的節(jié)省。(2)靈活的存儲策略,用戶同樣能夠標(biāo)記文件為 HOT或存儲類型。(3)快速的恢復(fù)與轉(zhuǎn)換,同時(shí)在數(shù)據(jù)恢復(fù)的時(shí)候,需要盡可能減少網(wǎng)絡(luò)帶寬的使用。(4)IO帶寬的節(jié)省。(5)Namenode低負(fù)載。EC技術(shù)在一定程度上會增大Namenode的開銷,因?yàn)镹ameNode需要額外跟蹤校驗(yàn)塊的信息。在 EC的實(shí)現(xiàn)過程中,需要盡可能降低NameNode的負(fù)載。這里還有一點(diǎn)需要注意,EC在Hadoop中的實(shí)現(xiàn)會直接改變原來的HDFS默認(rèn)的三副本策略 。EC的數(shù)據(jù)恢復(fù),主要分3大步驟:1. 根據(jù)EC數(shù)據(jù)恢復(fù)的要求,至少保證向最少要求數(shù)量的源端節(jié)點(diǎn)讀取數(shù)據(jù);2. 為目標(biāo)節(jié)點(diǎn)解碼數(shù)據(jù);3. 傳輸數(shù)據(jù)到目標(biāo)節(jié)點(diǎn)。在步驟1中,至少向最少要求數(shù)量的源端節(jié)點(diǎn)讀取緩沖數(shù)據(jù)。如果部分源端節(jié)點(diǎn)出于損壞狀態(tài)或是數(shù)據(jù)落后狀態(tài),將會選擇下一個(gè)源節(jié)點(diǎn)。最好的源節(jié)點(diǎn)會被記住并用在下一輪的數(shù)據(jù)恢復(fù)過程中、當(dāng)然也可能在每一輪中被更新[2]。
在HDFS存儲系統(tǒng)中,頻繁使用到的熱數(shù)據(jù)占整個(gè)存儲系統(tǒng)的很少部分,系統(tǒng)存儲的數(shù)據(jù)大部分為不經(jīng)常使用的冷數(shù)據(jù)。HDFS存儲系統(tǒng)的三副本策略可以實(shí)現(xiàn)數(shù)據(jù)的高可用性和容錯(cuò),適用于熱數(shù)據(jù)的存儲。大部分的冷數(shù)據(jù),對數(shù)據(jù)的高可用性、及時(shí)性要求較低,副本策略短處暴露得明顯,副本會占用大量的存儲資源并有可能耗光所有存儲空間。為了很好地解決這個(gè)問題,提出了HDFS糾刪碼技術(shù),它是三副本策略的一個(gè)有力補(bǔ)充,可以較好解決存儲系統(tǒng)資源消耗過多過快的問題。糾刪碼技術(shù)把數(shù)據(jù)編碼成數(shù)據(jù)塊存放在存儲節(jié)點(diǎn)上,需要消耗大量的網(wǎng)絡(luò)帶寬去和數(shù)據(jù)節(jié)點(diǎn)交互,在進(jìn)行編碼、解碼計(jì)算時(shí),需要消耗CPU資源、內(nèi)存資源。這些資源消耗較高的代價(jià),決定糾刪碼只對數(shù)據(jù)的高可用性、及時(shí)性要求較低的冷數(shù)據(jù)適用。采用了糾刪碼技術(shù)來存儲冷數(shù)據(jù),可以大大減少HDFS集群中的副本數(shù),并且在數(shù)據(jù)恢復(fù)時(shí),消耗資源少,不會存儲集群造成太大的影響。
在本文中,HDFS存儲系統(tǒng)采用如圖 1所示架構(gòu)。在HDFS存儲系統(tǒng)中,用戶向代理節(jié)點(diǎn)提出數(shù)據(jù)請求,代理節(jié)點(diǎn)接受請求,并把客戶的請求放入請求隊(duì)列中,調(diào)度器對用戶請求進(jìn)行調(diào)度,把用戶請求映射到適當(dāng)?shù)娜蝿?wù)隊(duì)列。本文只關(guān)注 get操作的用戶請求,即文件獲取操作。糾刪碼(n,k)糾刪碼(n>k)恢復(fù)一個(gè)文件至少需要k個(gè)數(shù)據(jù)塊。每個(gè)任務(wù)是利用一個(gè)線程與源端數(shù)據(jù)塊存儲節(jié)點(diǎn)建立 TCP連接并下載k個(gè)目標(biāo)數(shù)據(jù)塊的任務(wù),將下載的數(shù)據(jù)保存在代理節(jié)點(diǎn)的存儲緩沖池中[4]。一個(gè)線程定期掃描數(shù)據(jù),比如對數(shù)據(jù)塊和校驗(yàn)塊做 crc校驗(yàn),如果發(fā)現(xiàn)有數(shù)據(jù)塊或者校驗(yàn)塊失效,則重新對數(shù)據(jù)進(jìn)行選擇。當(dāng)k個(gè)任務(wù)都完成后,代理節(jié)點(diǎn)進(jìn)行解碼操作并恢復(fù)文件,最后將恢復(fù)好的文件返回給用戶。代理節(jié)點(diǎn)每消耗一個(gè)線程與存儲節(jié)點(diǎn)進(jìn)行TCP連接進(jìn)行數(shù)據(jù)下載直至任務(wù)完成,但代理節(jié)點(diǎn)內(nèi)可用線程數(shù)固定,當(dāng)可用線程數(shù)用盡時(shí),剩余任務(wù)則需要等待任務(wù)完成并出現(xiàn)新的可用線程,代理節(jié)點(diǎn)對等待隊(duì)列中的任務(wù)進(jìn)行調(diào)度,新任務(wù)才開始工作。本文的系統(tǒng)架構(gòu)增加了一個(gè)監(jiān)控節(jié)點(diǎn),它實(shí)時(shí)收集每個(gè)存儲節(jié)點(diǎn)的性能負(fù)載信息,為代理節(jié)點(diǎn)提供調(diào)度依據(jù)。
圖1 HDFS存儲系統(tǒng)架構(gòu)Fig.1 HDFS storage system architecture
本文在如圖1所示的云存儲系統(tǒng)架構(gòu)中,設(shè)置了一個(gè)性能檢測節(jié)點(diǎn),每經(jīng)過Δt時(shí)間間隔,采集云存儲系統(tǒng)中各個(gè)存儲節(jié)點(diǎn)的性能指標(biāo)信息并保存。通過實(shí)時(shí)跟蹤一些具有代表性的性能指標(biāo)信息(如表1所示),來分析其對調(diào)度產(chǎn)生的影響大小。這樣單獨(dú)設(shè)置一個(gè)性能檢測節(jié)點(diǎn),可以減小對代理節(jié)點(diǎn)的干擾,使文件獲取的時(shí)延得到降低,并且性能檢測節(jié)點(diǎn)的通信開銷對系統(tǒng)負(fù)載影響很小。
本文為了驗(yàn)證上述指標(biāo)對文件獲取的平均時(shí)延的影響,在存儲節(jié)點(diǎn)中單獨(dú)部署了兩個(gè)應(yīng)用,分別用于提高存儲節(jié)點(diǎn)的CPU利用率和內(nèi)存利用率。實(shí)驗(yàn)發(fā)現(xiàn)隨著CPU利用率和內(nèi)存利用率的變化,文件平均下載時(shí)延變化不大。通過對多個(gè)節(jié)點(diǎn)的負(fù)載信息進(jìn)行分析,發(fā)現(xiàn)文件平均下載時(shí)延也不會隨著CPU利用率、內(nèi)存利用率、throughput_recv、disk_percent、disk_write等指標(biāo)變化而變化。由此可以推斷出 CPU利用率和內(nèi)存利用率 throughput_recv、disk_percent、disk_write等指標(biāo)對文件獲取的平均時(shí)延基本沒有影響。
表1 性能指標(biāo)信息Tab.1 performance index information
由數(shù)據(jù)傳輸時(shí)延=發(fā)送時(shí)延+傳播時(shí)延+等待時(shí)延公式可知,當(dāng)要發(fā)送的數(shù)據(jù)較多、吞吐量升高時(shí),發(fā)送端口能力一定,導(dǎo)致更多數(shù)據(jù)等待發(fā)送,等待時(shí)延增加。節(jié)點(diǎn)負(fù)載較重,吞吐量升高會導(dǎo)致數(shù)據(jù)丟包率升高,更多數(shù)據(jù)需要超時(shí)重傳,增加數(shù)據(jù)傳輸時(shí)延。通過實(shí)驗(yàn)研究發(fā)現(xiàn),數(shù)據(jù)獲取時(shí)延曲線隨著throughput_send曲線的變化而發(fā)生一定變化,可以推斷文件獲取時(shí)延與吞吐量之間存在一定的關(guān)系。存儲系統(tǒng)從從存儲節(jié)點(diǎn)磁盤讀取數(shù)據(jù)塊,然后發(fā)送到代理節(jié)點(diǎn),假設(shè)每次磁盤讀操作讀取的數(shù)據(jù)大小相同,為d字節(jié),那么在理想情況下,只要發(fā)送速度足夠快,throughput_send = disk_read* d,可以看出每秒發(fā)送的字節(jié)數(shù)和每秒讀取次數(shù)存在線性關(guān)系,所以本文使用吞吐量作為調(diào)度依據(jù)而不使用每秒磁盤讀操作[6]。HDFS存儲系統(tǒng)中存在各種異構(gòu)系統(tǒng),各存儲節(jié)點(diǎn)的磁盤 I/O速率和可靠性差異較大,在實(shí)際的應(yīng)用場景中,磁盤 I/O速率比較低的存儲節(jié)點(diǎn)和可靠性比較低的存儲節(jié)點(diǎn)往往成為影響整個(gè)存儲系統(tǒng)數(shù)據(jù)讀寫性能的瓶頸,如果僅僅用吞吐量(throughput_send)作為存儲負(fù)載的判定條件,則其數(shù)據(jù)的讀寫效率必然受到限制。
過負(fù)載節(jié)點(diǎn):在每個(gè)監(jiān)測周期(Δt)內(nèi)計(jì)算每個(gè)存儲節(jié)點(diǎn)的負(fù)載率Li和系統(tǒng)平均負(fù)載Lavg,當(dāng)某個(gè)節(jié)點(diǎn)的Li超過Lavg時(shí)則視為出現(xiàn)了過載節(jié)點(diǎn)。高負(fù)載可能造成高時(shí)延,節(jié)點(diǎn)過載導(dǎo)致較高的丟包率,用戶獲取數(shù)據(jù)時(shí)延的不穩(wěn)定。
(1)計(jì)算系統(tǒng)中所有節(jié)點(diǎn)的數(shù)據(jù)總量DN。設(shè)分布式系統(tǒng)中第 i個(gè)節(jié)點(diǎn)的存儲數(shù)據(jù)量為 DNi,共有n個(gè)節(jié)點(diǎn),則該系統(tǒng)數(shù)據(jù)總量為:
(2)設(shè)第i個(gè)節(jié)點(diǎn)中磁盤的讀寫速率為DRi,則磁盤平均讀寫速率DR為:
(3)近似計(jì)算節(jié)點(diǎn)的的可靠性 Ri設(shè)定磁盤出廠未使用時(shí)其可靠性為100%,當(dāng)達(dá)到硬件的使用壽命時(shí),其可靠性為50%,當(dāng)達(dá)到2倍的硬件壽命時(shí),其可靠性為0%。其中,Tlife表示磁盤壽命(一般為3萬小時(shí)),Ti表示磁盤已經(jīng)使用時(shí)間。則第 i個(gè)節(jié)點(diǎn)可靠性為:
(4)設(shè)第i個(gè)節(jié)點(diǎn)中磁盤在可靠的情況下讀寫數(shù)據(jù)所需時(shí)間為DTi,則
(5)讀寫第i個(gè)節(jié)點(diǎn)的數(shù)據(jù)時(shí),可能出現(xiàn)讀寫成功和讀寫失敗兩種情況,將該節(jié)點(diǎn)的可靠性視為讀寫成功的概率,則可以計(jì)算出第 i個(gè)節(jié)點(diǎn)的平均讀寫時(shí)間,因此綜合考慮磁盤可靠和不可靠兩種情況,定義節(jié)點(diǎn)平均讀寫時(shí)間:
其中 DTmax表示節(jié)點(diǎn)不可靠情況下讀寫數(shù)據(jù)所需要的時(shí)間。
(6)將第i個(gè)節(jié)點(diǎn)的數(shù)據(jù)平均讀寫時(shí)間在整個(gè)集群中的比重定義為基于讀寫效率的節(jié)點(diǎn)負(fù)載率Li:
(7)計(jì)算系統(tǒng)平均負(fù)載Lavg:
通過計(jì)算每個(gè)節(jié)點(diǎn)的負(fù)載率Li,計(jì)算系統(tǒng)平均負(fù)載Lavg,如果Li>Lavg,則說明該存儲節(jié)點(diǎn)超載[6]。
在本文中,我們結(jié)合單個(gè)節(jié)點(diǎn)負(fù)載率這一指標(biāo),初步判斷節(jié)點(diǎn)的超載情況,在此基礎(chǔ)上,通過優(yōu)化現(xiàn)有調(diào)度策略,即基于存儲節(jié)點(diǎn)吞吐量的負(fù)載情況進(jìn)行調(diào)度,設(shè)計(jì)了一種新的調(diào)度算法。
本文采用單節(jié)點(diǎn)存儲負(fù)載和磁盤的吞吐量(throughput_send表示)作為調(diào)度依據(jù),并以此設(shè)計(jì)算法。普通動(dòng)態(tài)負(fù)載調(diào)度算法依據(jù)動(dòng)態(tài)運(yùn)行中數(shù)據(jù)節(jié)點(diǎn)或鏈路的負(fù)載情況而采用動(dòng)態(tài)分配存儲節(jié)點(diǎn)流量,以實(shí)現(xiàn)維護(hù)存儲節(jié)點(diǎn)吞吐量大致平衡。但這類算法的運(yùn)行開銷較大,不能帶來較好的效率。而本文的算法不以負(fù)載絕對平衡為目的,在綜合考慮整體系統(tǒng)負(fù)載和單個(gè)節(jié)點(diǎn)負(fù)載的情況下,選擇最小吞吐量的節(jié)點(diǎn),實(shí)現(xiàn)存儲節(jié)點(diǎn)負(fù)載均衡達(dá)到最優(yōu)化。
在單用戶請求的情況下,當(dāng)每次有用戶請求到達(dá)時(shí),選擇負(fù)載最小的一些存儲節(jié)點(diǎn)進(jìn)行下載,比較好處理。然而在多用戶同時(shí)請求的情況下,多個(gè)請求之間存在關(guān)聯(lián)性,會使存儲節(jié)點(diǎn)的吞吐量發(fā)生變化、節(jié)點(diǎn)負(fù)載加重。本文主要解決多用戶情況下的調(diào)度問題。
問題:假設(shè)有 p個(gè)用戶請求同時(shí)到達(dá),獲取 p個(gè)文件,用file_list[1, 2, …, p]表示。每個(gè)文件分別采用(ni,ki)糾刪碼(i = 1, 2, …, p)。假設(shè)所有文件通過編碼后,數(shù)據(jù)塊全部映射到 q個(gè)存儲節(jié)點(diǎn),(MAX(ni)≤q≤Σpi=1ni)。storage[1, 2, …, q]表示每個(gè)存儲節(jié)點(diǎn)的信息,chunk[1, 2, …, p]表示每個(gè)文件對應(yīng)的數(shù)據(jù)塊信息。從(n1,n2,…,np)個(gè)存儲節(jié)點(diǎn)中分別選出(k1,k2,…,kp)個(gè)節(jié)點(diǎn),使得所有存儲節(jié)點(diǎn)storage[1,2,…,q]的負(fù)載程度最優(yōu)化[7]。
思路:根據(jù)類似于最小生成樹中的普里姆算法思想,對每個(gè)節(jié)點(diǎn)進(jìn)行存儲負(fù)載判定,計(jì)算出哪些存儲節(jié)點(diǎn)是超負(fù)載的,然后每次從超載存儲節(jié)點(diǎn)中刪除一個(gè)數(shù)據(jù)塊,由于小數(shù)據(jù)塊對于吞吐量影響不大,在這里每次刪除最大的數(shù)據(jù)塊并更新當(dāng)前節(jié)點(diǎn)的負(fù)載,重復(fù)操作,直到所有數(shù)據(jù)節(jié)點(diǎn)都不超載;再對所有存儲節(jié)點(diǎn)按 throughput_send信息進(jìn)行排序,然后每次從throughput_send最高的存儲節(jié)點(diǎn)中刪除一個(gè)最大的數(shù)據(jù)塊,更新節(jié)點(diǎn)throughput_send,重復(fù)操作,直到所有文件的數(shù)據(jù)塊數(shù)目分別等于k1,k2,…,kp[8]。具體如算法如圖1所示。
為了驗(yàn)證算法改進(jìn)的效果,本文搭建了一個(gè)多節(jié)點(diǎn)的云平臺,采用開源項(xiàng)目OpenStack,使代理節(jié)點(diǎn)和所有存儲節(jié)點(diǎn)都處于同一個(gè)局域網(wǎng),并配置每個(gè)節(jié)點(diǎn)使其具有一個(gè)千兆網(wǎng)卡。
在云平臺中,申請1臺虛擬機(jī)作為性能檢測節(jié)點(diǎn),1臺虛擬機(jī)作為代理節(jié)點(diǎn),另外申請20臺虛擬機(jī)作為存儲節(jié)點(diǎn),組成一個(gè)測試系統(tǒng)。通過糾刪碼對文件進(jìn)行編碼,并把形成的數(shù)據(jù)塊放在存儲節(jié)點(diǎn)中。本文在代理節(jié)點(diǎn)上部署調(diào)度算法,并將監(jiān)測節(jié)點(diǎn)與存儲節(jié)點(diǎn)之間的交互頻率Δt設(shè)為2次/s。代理節(jié)點(diǎn)同時(shí)擁有L = 40大小的線程池。測試多用戶請求同時(shí)到達(dá)情況下本文UNION-ALGORITH調(diào)度算法的性能。在相同的實(shí)驗(yàn)情況下,將本文的算法UNION-ALGORITH和 FCFS-R算法進(jìn)行對比,得出相關(guān)的結(jié)論。FCFS-R:先來先服務(wù)策略,對于每個(gè)到達(dá)的請求,利用冗余線程來進(jìn)行文件下載任務(wù)。
本文以橫坐標(biāo)表示用戶請求的總次數(shù),縱坐標(biāo)表示完成所有請求的平均時(shí)延。測試10,20,50,100,200,500幾組數(shù)據(jù),得到的數(shù)據(jù)如圖2所示。本文算法避免了單個(gè)節(jié)點(diǎn)超載,從而影響文件獲取時(shí)延,使系統(tǒng)總體調(diào)度最優(yōu)、負(fù)載較均衡。從圖 2可以看出,本文提出的UNION-ALGORITH算法比FCFS-R算法降10%~15%數(shù)據(jù)獲取的平均時(shí)延,相比FCFS-R算法降低20%~30%的平均時(shí)延。
在HDFS存儲系統(tǒng)中,用戶的體驗(yàn)至關(guān)重要,而數(shù)據(jù)獲取時(shí)延的穩(wěn)定性是決定用戶體驗(yàn)的重要因素。本文通過分析算法對時(shí)延波動(dòng)的影響,來驗(yàn)證UNION-ALGORITH算法的性能。根據(jù)概率論相關(guān)知識,方差越大,表示數(shù)據(jù)離散程度越高,穩(wěn)定性越差,因此可以利用方差來體現(xiàn)數(shù)據(jù)獲取時(shí)延的離散程度,D(X) = E{[X-E(X)]2}。實(shí)驗(yàn)使用了糾刪碼(4,2)、(6,3)、(10,4)對文件進(jìn)行存儲,并在用戶請求服從多用戶請求數(shù)據(jù)情況下,驗(yàn)證 UNIONALGORITH算法的穩(wěn)定性。實(shí)驗(yàn)結(jié)果如圖3所示,在不同的糾刪碼編碼方式下,解決多用戶請求同時(shí)到達(dá)的問題,UNION-ALGORITH算法比 FCFS-R算法的時(shí)延方差降低了30%~40%,明顯比FCFS-R算法更有優(yōu)勢。這說明在長時(shí)間內(nèi),UNIONALGORITH算法比FCFS-R算法有更穩(wěn)定的數(shù)據(jù)獲取時(shí)延,不會出現(xiàn)劇烈波動(dòng)即時(shí)延過高或過低的情況,從而帶來更好的用戶體驗(yàn)。
圖1 多用戶請求調(diào)度算法Fig.1 LOAD-ALGORITHM
圖2 用戶請求的平均時(shí)延Fig.2 Average delay with multiple user requests
圖3 調(diào)度算法對穩(wěn)定性的影響Fig.3 Effect of scheduling algorithms on stability
根據(jù)實(shí)驗(yàn)結(jié)果可得出結(jié)論,本文提出的調(diào)度算法對數(shù)據(jù)獲取時(shí)延的穩(wěn)定性也有著明顯的改善。
本文給出了基于糾刪碼的HDFS存儲調(diào)度技術(shù)的研究,結(jié)合存儲節(jié)點(diǎn)的負(fù)載情況和節(jié)點(diǎn)的吞吐量指標(biāo),設(shè)計(jì)了新的調(diào)度算法,達(dá)到均衡負(fù)載的目的,降低文件獲取的平均時(shí)延,以實(shí)現(xiàn)最優(yōu)的資源調(diào)用。通過計(jì)算單個(gè)存儲節(jié)點(diǎn)的負(fù)載,判斷超載節(jié)點(diǎn),防止出現(xiàn)負(fù)載過重節(jié)點(diǎn);通過分析大量存儲節(jié)點(diǎn)的相關(guān)信息,找出影響文件獲取的平均時(shí)延的性能指標(biāo),并基于該指標(biāo)設(shè)計(jì)了新的調(diào)度算法。實(shí)驗(yàn)結(jié)果表明,本文提出的調(diào)度算法能夠有效降低HDFS存儲系統(tǒng)中用糾刪碼編碼文件獲得的平均時(shí)延,達(dá)到負(fù)載平衡優(yōu)化的目的,還能夠提高數(shù)據(jù)獲取的穩(wěn)定性,給用戶更好的體驗(yàn)。
[1] 趙勇. 架構(gòu)大數(shù)據(jù)——大數(shù)據(jù)技術(shù)及算法解析[M]. 北京:電子工業(yè)出版社, 2015: 394-410.ZHAO Y. Big Data Structure—The Technology and Algorithm Analysis of Big Data[M]. Beijing: Publishing House of Electronics Industry, 2015: 394-410.
[2] Apache Software Foundation. Kafka [EB/OL]. [2016-04-11].http://kafka.apache.org/.
[3] Apache Software Foundation. Apache Zookeeper [EB/OL].[2016-04-11]. http://zookeeper.apache.org/.
[4] MICHAEL K, MILLER K W. Big data: new opportunities and new challenges[J]. Computer, 2013, 46(6): 22-24.
[5] 程振東, 欒鐘治, 孟由, 等. 云文件系統(tǒng)中糾刪碼技術(shù)的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)科學(xué)與探索, 2013, 7(4): 315-325.CHENG ZD, LUAN Z Z, MENG Y, et al. Research and implementation on erasure code in cloud file system[J]. Journal of Frontiers of Computer Science and Technology, 2013, 7(4):315-325.
[6] BASSAM A A, CHEN W, ZHOU B B, et al. Effects of replica placement algorithms on performance of structured overlay net works[C]//Parallel and Distributed.
[7] 羅象宏, 舒繼武. 存儲系統(tǒng)中的糾刪碼研究綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(1): 1-11.LUO X H, SHU J W. Summary of research for erasure code in storage system[J]. Journal of Computer Research and Development, 2012, 49(1): 1-11.
[8] KOLB L, THOR A, RAHM E. Dedoop: efficient deduplication with Hadoop[J]. Proceedings of the VLDB Endowment,2012, 5(12): 1878-1881.
[9] 蔣海波, 王曉京, 范明鈺, 等. 基于水平糾刪碼的云存儲數(shù)據(jù)布局方法[J]. 四川大學(xué)學(xué)報(bào)(工程科學(xué)版), 2013, 45(2):103-109.JIANG H B, WANG X J, FAN M Y, et al. A data placement based on level array codes in cloud storage[J]. Journal of Sichuan University (Engineering Science Edition), 2013, 45(2):103-109.
[10] Chen Kang, Zheng Wei-min. Cloud computing: System instances and current research[J]. Journal of Software, 2009,20(5): 1337-1348. (in Chinese)
[11] Wei Q S, Veeravalli B, Gong B Z, et al. CDRM: A cost-effective dynamic replication management scheme for cloud storage cluster[C]//Proc of IEEE International Conference on Cluster Computing, 2010: 188-196.
[12] Fu X, Wang R C, Deng S. A dynamic programming based replica placement in data grid[J]. Chinese Journal of Electronics, 2010, 19(4): 699-704.