賓茂梨 王榆心 懷瑜 畢夢(mèng)怡 方宗悅
摘要:互聯(lián)網(wǎng)技術(shù)發(fā)展日新月異,居民越加重視社區(qū)信息化服務(wù)升級(jí),我國(guó)各社區(qū)信息化系統(tǒng)存在諸多問(wèn)題,社區(qū)系統(tǒng)的孤立導(dǎo)致文件難以共享且針對(duì)社區(qū)系統(tǒng)的存儲(chǔ)方案不夠完善。本課題針對(duì)以上問(wèn)題,提出對(duì)HDFS的小文件存儲(chǔ)策略進(jìn)行改進(jìn)。通過(guò)小文件的特征判斷相似性,進(jìn)行小文件的分類(lèi)與合并,根據(jù)測(cè)試,該策略對(duì)于無(wú)規(guī)則的文件合并策略,讀取速度得到提高。
關(guān)鍵詞:智慧社區(qū),HDFS,小文件存儲(chǔ)
0???? 引言
隨著智慧社區(qū)的不斷發(fā)展,生成了海量的信息數(shù)據(jù),目前智慧社區(qū)信息系統(tǒng)固化,社區(qū)信息難以共享。要實(shí)現(xiàn)真正的智慧社區(qū),需要對(duì)社區(qū)大數(shù)據(jù)進(jìn)行合理高效運(yùn)用,分布式文件存儲(chǔ)系統(tǒng)更加符合如今的大數(shù)據(jù)時(shí)代。
本文介紹了一種以HDFS分布式文件存儲(chǔ)為基礎(chǔ),針對(duì)HDFS對(duì)于小文件處理不足進(jìn)行改進(jìn),可以提高文件存儲(chǔ)性能。
1???? Hadoop小文件合并方法
1.1? Hadoop Archive方案
Hadoop Archive方案是將多個(gè)小文件合并成一個(gè)文件,且合并后的文件中包含被合并文件的元數(shù)據(jù)信息和文件內(nèi)容,主要由MapReduce將小文件內(nèi)容進(jìn)行歸并形成歸檔文件[1]。
這個(gè)方案雖然可以歸檔小文件,但是歸檔后不易更改,需要全部解壓后進(jìn)行更改后再進(jìn)行歸檔。歸檔小文件后原文件不會(huì)自行刪除;歸檔操作需要依賴(lài)MapReduce,查詢文件耗時(shí)長(zhǎng);且歸檔操作只適用于已經(jīng)存入HDFS集群中的小文件,歸檔過(guò)程會(huì)占用集群額外的計(jì)算資源。
2???? 小文件存儲(chǔ)改進(jìn)方案
本文接下來(lái)的內(nèi)容主要解決以下兩個(gè)問(wèn)題。第一,如何判定多大的文件是小文件進(jìn)而進(jìn)行合并預(yù)處理;第二,小文件如何根據(jù)特征屬性進(jìn)行合并,研究與設(shè)計(jì)具體合并規(guī)則和步驟。最后將改進(jìn)后策略進(jìn)行測(cè)試并比對(duì)測(cè)試結(jié)果。
2.1? 小文件大小劃分
在提出優(yōu)化方案前,首先需要定義小文件[2],定義小文件的文件大小就是當(dāng)文件大小大于某一值時(shí),HDFS中文件的存儲(chǔ)效率極大的降低,這一分界點(diǎn)即為本課題研究目標(biāo)。將NameNode節(jié)點(diǎn)內(nèi)存中每KB可存文件數(shù)量作為衡量標(biāo)準(zhǔn),記為NPK。
式中,N——HDFS上存儲(chǔ)的文件數(shù)
Mn——NameNode所消耗的內(nèi)存量
通常,文件和具有三個(gè)副本單元的塊的元數(shù)據(jù)分別消耗250和 368字節(jié)的內(nèi)存[3],則NameNode消耗內(nèi)存計(jì)算公式為:
測(cè)試NameNode節(jié)點(diǎn)的內(nèi)存占用情況再分別讀取HDFS下載文件,測(cè)試下載時(shí)長(zhǎng)和MSPF[4],結(jié)果如圖2.1所示。
由圖2.1可得,在數(shù)值在0 到交點(diǎn)間時(shí)增長(zhǎng)明顯,而后增長(zhǎng)緩慢,通過(guò)線性擬合可得2.70為讀取效率臨界點(diǎn),此時(shí)文件大小為7.33MB,故小文件指小于7.33MB文件。
2.2? 小文件合并文件規(guī)則
上一節(jié)確定了小文件的具體劃分,將小文件處理過(guò)程置于預(yù)處理節(jié)點(diǎn)中,在存入HDFS集群前就實(shí)現(xiàn)對(duì)小文件分類(lèi)與合并以解決滯后性,合并規(guī)則如圖2.2所示。
采用SimHash算法對(duì)文件進(jìn)行相似性判斷并分類(lèi),將達(dá)到數(shù)據(jù)塊大小的分類(lèi)進(jìn)行文件合并,合并生成SequenceFile文件和相應(yīng)的IndexFile索引文件,最后將合成的SequenceFile文件同大文件一樣存入HDFS集群中。將小文件按社區(qū)文件特征屬性進(jìn)行合并,可以提升文件讀取速度,還可以減輕HDFS內(nèi)存壓力。
3???? 測(cè)試結(jié)果與分析
HDFS集群負(fù)責(zé)文件的存儲(chǔ),服務(wù)端預(yù)處理節(jié)點(diǎn)負(fù)責(zé)小文件處理工作。為減小誤差,采用去尾平均值作為測(cè)試結(jié)果。
分別采用原生HDFS小文件處理策略和改進(jìn)后的策略,進(jìn)行小文件存儲(chǔ)時(shí)間測(cè)試,存儲(chǔ)耗時(shí)結(jié)果如圖3.1所示。
由圖可見(jiàn),本文提出的改進(jìn)策略在存取文件過(guò)程中較原生存儲(chǔ)策略有極大提高。
參考文獻(xiàn):
[1]?? 關(guān)海超.小文件處理及算法并行化在Hadoop上的設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:重慶大學(xué).2015.
[2]?? 閆建,李瑞,劉薩娜.機(jī)遇、挑戰(zhàn)與展望:“互聯(lián)網(wǎng)+”背景下的政府治理創(chuàng)新[J].重慶理工大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2017,30(1):76-81.
[3]?? He H,Du Z,Zhang W,et al.Optimization strategy of Hadoop small file storage for big data in healthcare[J].Journal of Supercomputing,2016,72(10):3696-3707.
[4]?? 段效琛,李英娜,賈會(huì)玲,等.初始信息素篩選的蟻群優(yōu)化算法在HDFS副本選擇中的研究[J].傳感器與微系統(tǒng),2017,(4):31-33.
作者簡(jiǎn)介:
賓茂梨(1997-),男,在讀研究生,研究方向:物聯(lián)網(wǎng)技術(shù)與應(yīng)用
基金:重慶市教委雛鷹計(jì)劃第九期研究項(xiàng)目“基于PID控制的簡(jiǎn)易風(fēng)洞控制器設(shè)計(jì)”(CY200602)