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