王麗娟,蔡曉東,王 迪,趙勤魯
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
?
基于集中式管理的緩存優化方案
王麗娟,蔡曉東,王迪,趙勤魯
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
摘要:針對分布式文件系統HDFS 以流式的方式訪問大文件時效率很高,但是為解決海量小文件的操作特別是頻繁訪問重復的小文件時效率比較低的問題,提出了一種基于集中式管理的緩存優化方案。該方案通過對緩存的小文件進行集中式管理,采用一種新的數據一致性管理機制,提高海量小文件的讀取性能。實驗結果表明,該方案有效地提高了小文件的讀取效率,減少了小文件的訪問時延。
關鍵詞:HDSF;集中式管理;緩存優化;一致性管理
在互聯網、云計算、大數據等高速發展的背景下,數據呈現爆炸式地增長。而其中增長最快并且最容易給信息基礎架構帶來挑戰的就是數目龐大的小文件。由于在元數據管理、訪問性能、存儲效率等方面面臨巨大的挑戰性,因此海量小文件(Lots of Small Files,LOSF)問題[1]成為了工業界和學術界公認的難題。
HDFS 分布式文件系統[2]是Apache Hadoop[3]項目開發的適合運行在通用硬件上的分布式文件系統,具有高可靠性、高容錯性的特點,能提供高吞吐量的數據訪問,適用于海量數據集的存儲和分布式處理。然而HDFS 文件系統并非是完美的,HDFS的設計建立在“一次寫入、多次讀取”任務的基礎上,對HDFS來說,請求讀取整個數據集要比讀取一條記錄更加高效。如果要處理一些用戶要求時間比較短的低延遲應用請求和頻繁讀取大量小文件,則HDFS不適合。
目前有許多關于對HDFS讀寫性能優化的研究,文獻[4]中提出了一種在HDFS的數據節點增加本地緩存的方法,該方法雖然縮短了數據讀取的時間,但是每次讀取數據時都必須訪問緩存列表,同時每個數據節點都要維護一個緩存列表,緩存的數據塊是分散的,可能會出現多個副本都緩存的情況,造成節點內存空間的浪費。文獻[5]中通過增加新的本地緩存系統架構,使用合適的緩存算法來調整和管理數據在本地文件系統和分布式文件系統中的存儲位置以及數據隊列,該方法降低了對HDFS文件系統的頻繁訪問,在一定程度上減輕了主節點(NameNode)的負載。文獻[6]針對小文件的讀取問題提出了一個基于關系數據庫的小文件合并策略,通過獲取存儲在數據庫的元數據信息,直接以流式的方式讀取小文件,并采取節點負載均衡策略,降低NameNode節點的內存消耗。
本文針對HDFS頻繁訪問海量小文件時效率低的問題, 借鑒HDFS中的集中式緩存管理機制,提出了一種基于集中式管理的緩存優化方案。通過定義小文件,對緩存文件進行集中式管理;為保持緩存數據的一致性采用了一種新的一致性管理策略;并對其進行了緩存讀取性能的測試,實驗證明本文提出的方案很好地解決了HDFS頻繁讀取海量小文件的問題,提高了文件的讀取效率。
1總體架構
本文所提出的一種基于集中式管理的緩存優化方案遵循以下原則:保持原始框架;本文提出的優化方案是在已有的分布式文件系統的基礎上,通過集中式的管理對小文件的讀取進行優化,而不是提供一個新的hdfs框架,因此不需要對hdfs的存儲框架和源碼做任何的改動。
本文提出的一種基于集中式管理的緩存優化讀取方案主要由3個部分組成,即客戶端(Client)、主節點(NameNode)、數據節點(DataNode),如圖1所示。其中Hadoop集群的組成部分:主節點和數據節點對該緩存優化方案中的客戶端用戶來說是透明的,它在該架構中是為客戶端用戶提供一系列相關的服務。客戶端通過RPC協議[7]分別與NameNode和DataNode節點進行通信,完成對數據的讀寫操作。本文在集群客戶端內設計并實現了緩存控制模塊,其中緩存控制模塊由緩存讀取、 緩存數據一致性控制部分組成。對NameNode和DataNode節點來說,因為客戶端需要控制緩存文件和完成對緩存文件的各種相關操作,所以在提出的緩存優化讀取方案是對客戶端進行了擴展。

圖1 基于集中式管理的緩存優化框架設計
2緩存優化方案的實現
2.1緩存讀取模塊
如圖2所示,本文通過設計一種基于集中式管理的緩存讀取模塊來處理頻繁訪問小文件的操作,當客戶端Client向集群中的NameNode節點申請讀取數據文件時,總體可以概括為以下4個步驟:
1)Client獲得待讀取的數據文件信息,判斷該文件是否位于緩存中。
2)若該文件已緩存,那么直接與DataNode通信,讀取數據文件。
3)若該文件不在緩存列表中,則判斷是否可以緩存該文件,其中緩存的條件為小于1M的小文件;當滿足緩存條件時,進行緩存操作,然后讀取緩存數據文件,否則直接讀取數據文件。
4)本文中使用的緩存替換算法為LRU[8](Least Recently Used)緩存替換算法。具體流程如圖2所示。

圖2 緩存流程圖
已緩存的數據文件元信息通過集中式管理的方式存儲到客戶端用戶的緩存模塊中,即緩存列表中,以此實現對已緩存數據的集中式管理。通常認為大小在1 Mbyte以內的文件稱為小文件,因此本文將緩存文件的閾值設置為1 Mbyte。
2.2緩存替換與數據一致性模塊
在hadoop的集中式緩存管理中,沒有集成和使用任何的緩存替換算法,如果緩存空間已滿或者刪除緩存操作時,需要手動進行。
緩存讀取緩存模塊維護了一個緩存列表,其中緩存列表中緩存的是緩存數據文件在hdfs中的存儲路徑和NameNode中所對應的緩存管理(cachemanager)信息。緩存模塊記錄了所有被更改過的緩存項,這些緩存項按照LRU緩存替換算法進行排列,當客戶端讀取的數據文件被緩存時,緩存列表就被命中,每次對緩存列表中的緩存內容引用,緩存列表都會進行一次更新,即將引用的緩存項移至緩存列表的表頭。當緩存空間已滿時,采用LRU緩存替換算法進行緩存替換。
數據一致性[9]的實現,緩存中的數據可能會因為用戶的操作而出現與低速實體數據不一致的情況,為了使緩存數據與低速實體數據保持一致性,一般情況下需要定期地將緩存中的數據與低速實體中的數據進行同步。在本文中,由于hadoop系統中的DataNode會向NameNode定期發送heartbeat RPC用于表明節點的狀態,同時DataNode還會向NameNode定期發送block report和cache block用于同步block和cache的狀態;因此hadoop系統本身具有數據一致性和數據持久化的特性,所以在本文所提出的方案中,數據一致性只需要考慮客戶端用戶維護的緩存列表與NameNode節點中的cachemanager的數據一致性即可。本文提出的策略是:
客戶端定期獲取cachemanager中的緩存項,與客戶端維護的緩存列表進行比較,cachemanager與緩存列表中的緩存項不一致,大概可以分為以下兩種情況:
1)緩存列表中存在,但是cachemanager中沒有緩存該數據文件,那么刪除緩存列表中的緩存項;
2)cachemanager中已緩存該數據項,但是緩存列表中沒有該緩存項,那么移除cachemanager中的已緩存項。
3實驗與分析
本實驗在操作系統為Centos6.6的64位華碩服務器下實現,硬件環境如下:CPU為2個6核Inter Xeon CPU E5-2620處理器,內存大小為64 Gbyte,通過虛擬化技術搭建hadoop集群,集群中設置1個NameNode節點和3個DataNode節點,網絡環境為10.0.0.1網段的局域網,軟件環境為hadoop-2.5.0。測試文件為小于1 Mbyte的小文件。
為了驗證該緩存方案的高效性,測試在改進前后的hdfs框架下小文件的讀取能力和響應時間,即NameNode響應數據塊請求到客戶端讀取數據完畢的時間。其中比較結果如圖3所示。

圖3 文件讀取響應時間
由圖3可知,該緩存優化讀取方案與原始的小文件讀取響應時間相比,具有明顯的優勢,文件響應時間大大縮短。當讀取的小文件被緩存命中時,客戶端可以直接從數據節點內存中讀取數據塊,而且對于memory-locality的DFSClient ,checksum檢驗其完整性已經完成,那么通過zero-copy直接讀內存中的block。
從圖4中可以得出,隨著緩存數據文件的增大,文件讀取響應時間也在增加;當緩存副本數由replication=1增加到replication=2時,讀取響應時間大大縮短;且隨著緩存數據文件的不斷增大,文件讀取響應時間同樣發生變化,即replication=1和replication=2的文件讀取響應時間的差值越來越大,replication=2到replication=3的文件讀取響應時間差值變化不明顯。

圖4 緩存副本數與數據響應時間的關系
4結論
本文針對HDFS頻繁訪問海量小文件的讀取時延和頻繁磁盤IO的操作問題提出了一種基于集中式管理的緩存讀取優化方案,在集中式管理緩存的基礎上,增加LRU緩存替換算法,通過定時刷新緩存管理列表達到保持數據一致性的目的。在緩存讀取模塊增加緩存預判條件,通過該方法可以避免大文件數據被緩存,不僅使該緩存方案更好地服務于海量小文件,還可以充分利用集中式緩存管理的特性。通過實驗表明,該緩存優化方案可以減少小文件的訪問時間,提高了海量小文件的讀取效率。
本文的進一步的工作,集中式緩存管理目前還沒有與YARN結構整合,下一步的研究工作希望可以解決集中式緩存與yarn的整合,減少對NameNode的頻繁訪問。
參考文獻:
[1]朱珠.基于Hadoop的海量數據處理模型研究和應用[D].北京:北京郵電大學,2008.
[2]SHVACHKO K,KUANG H,RADIA S, et al.The hadoop distributed file system[C]//Proc. IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).[S.l.]:IEEE,2010.
[3]陸嘉恒.Hadoop實戰[M].北京:機械工業出版社,2011.
[4]趙婧,王洪波,程時端. HDFS數據節點本地緩存的設計與實現[EB/OL].[2015-07-05].http://www.paper.edu.cn/releasepaper/content/201112-98.
[5]YOON S D, JUNG I Y, KIM K H, et al. Improving HDFS performance using local caching system[C]//Proc.IEEE 2013 Second International Conference on Future Generation Communication Technology (FGCT). [S.l.]:IEEE,2013:153-156.
[6]張海,馬建紅. 基于HDFS的小文件存儲與讀取優化策略[J].計算機系統應用,2014,23(5):167-171.
[7]WANG B, CHEN L. Analysis and application of mechanism of Hadoop RPC communiucation[J]. Journal of Xi′an university of posts & telecommunications, 2012(6):80-83.
[8]周程. 視頻點播系統緩存算法研究[D]. 杭州:浙江大學,2011.
[9]陳莉君,康華. Liunx操作系統原理與應用[M]. 北京:清華大學出版社,2012.
王麗娟(1991— ),女,碩士生,主研云計算與數據挖掘;
蔡曉東(1971— ),碩士生導師,主要研究方向為圖像、視頻處理;
王迪(1988— ),碩士生,主研人臉識別與檢測;
趙勤魯(1989— ),碩士生,主研數據挖掘。
責任編輯:閆雯雯
Optimizational scheme of cache based on centralized management
WANG Lijuan, CAI Xiaodong, WANG Di, ZHAO Qinlu
(SchoolofInformationandCommunication,GuilinUniversityofElectronicTechnology,GuangxiGuilin541004,China)
Abstract:In the form of streaming to read and write large files is very efficient in HDFS distributed file system, but the efficiency on reading and writing especially frequent operating of the mass of small files is relatively low. To solve such problems, a cache optimizational scheme based on centralized management is proposed, in order to improve the mass small file read performance. The scheme by centralized management cached small files, using a new data consistency management mechanism. And the experimental results show that the proposed scheme effectively improves the efficiency of small file read, reduces the small file access delay.
Key words:HDFS;centralized management;cache optimization;consistency management
中圖分類號:TP391
文獻標志碼:A
DOI:10.16280/j.videoe.2016.05.022
基金項目:國家科技支撐計劃項目(2014BAK11B02);廣西科學研究與技術開發計劃項目(桂科攻14122007-5);桂林電子科技大學研究生教育創新計劃資助項目(YJCXS201521)
作者簡介:
收稿日期:2015-07-30
文獻引用格式:王麗娟,蔡曉東,王迪,等. 基于集中式管理的緩存優化方案[J].電視技術,2016,40(5):101-104.
WANG L J,CAI X D,WANG D,et al. Optimizational scheme of cache based on centralized management [J].Video engineering,2016,40(5):101-104.