摘要:針對在云計算中HDFS存儲小文件數(shù)據(jù)讀取率低、時間長和內存消耗大等缺點,文章提出了一種分布式緩存方案策略,通過每個DataNode節(jié)點緩存處理客戶端頻繁訪問的小文件,從而顯著降低了DataNode磁盤訪問的頻率,提高了數(shù)據(jù)的存儲效率,以期為云計算中的存儲技術提供科學參考。
關鍵詞:云計算;HDFS;小文件;方案策略
中圖法分類號:TP333文獻標識碼:A
Research on HDFS data storage strategy in cloud computing
XU Kefei
(Jinan Software Research Institute of China United Network Communication Co.,Ltd.,Jinan 250100,China)
Abstract:In view of the shortcomings of low data reading rate, long time and large memory consumption of small files are stored in HDFS in cloud computing, a distributed caching scheme strategy is proposed. Each DataNode caches and processes small files frequently accessed by clients, which significantly reduces the frequency of DataNode disk access and improves the storage efficiency of data, in order to provide scientific reference for storage technology in cloud computing.
Key words: cloud computing, HDFS,small file, scheme strategy
近年來,隨著計算機和互聯(lián)網(wǎng)應用技術的快速發(fā)展,云計算作為一種新的計算模式應用而生。云計算是基于互聯(lián)網(wǎng)整合各種計算資源,通過軟件實現(xiàn)自動化管理,用戶可以按照需求獲取各種資源的模式。云計算具有服務針對性、靈活便捷、虛擬化、可度量性和動態(tài)可擴展的特點。云計算技術已經(jīng)普遍應用在各種互聯(lián)網(wǎng)服務中,通過云端共享數(shù)據(jù)資源,在圖像處理、數(shù)據(jù)挖掘、數(shù)字傳輸、電子商務和醫(yī)療教育等領域廣泛應用[1]。在云計算技術應用的過程中會產(chǎn)生海量的數(shù)據(jù),并且數(shù)據(jù)的規(guī)模呈指數(shù)級增長,對數(shù)據(jù)的有效存儲和綜合管理提出了更高的要求[2]。國內外諸多學者針對云計算數(shù)據(jù)存儲問題開展了研究,如Anzi[3]提出了一種可靠性、可擴展性和安全性更強的數(shù)據(jù)存儲架構,它可以將用戶的數(shù)據(jù)加密并分割成不同的密文塊,并在不同的服務站點之間分發(fā);徐敏等[4]采用虛擬化技術搭建云計算平臺,利用 MC 算法和 AES 算法對數(shù)據(jù)進行處理,結果表明該方法具有較高的存儲實時性和安全性;袁愛平等采用改變云環(huán)境中虛擬機方法對存儲方案進行了改進,平衡數(shù)據(jù)塊在物理節(jié)點中的存儲,提高了系統(tǒng)的可靠性。
隨著互聯(lián)網(wǎng)、云計算和大數(shù)據(jù)的快速發(fā)展,人們的日常生活和工作中會產(chǎn)生大量的小文件,如圖片、微視頻等數(shù)據(jù)文件。這些小文件數(shù)據(jù)規(guī)模越來越大,因此高效地存儲海量小文件數(shù)據(jù)是非常重要的應用需求。 HDFS(Hoop Distributed File System)是一個開源框架,可以存儲大文件和海量的數(shù)據(jù),具有較高的容錯性,方便部署在常規(guī)硬件上,通過流的形式訪問文件數(shù)據(jù),基本性能優(yōu)于現(xiàn)有的分布式文件系統(tǒng)。HDFS 存儲系統(tǒng)是針對大文件數(shù)據(jù)設計的,對于存儲小文件數(shù)據(jù)時,NameNode處理大量的元數(shù)據(jù)時讀取率低、時間過長且內存消耗巨大,極大的降低了存儲效率。因此,本文針對云計算中HDFS 存儲海量小文件問題進行分析和研究,設計合理的海量小文件存儲方案,優(yōu)化存儲效率,以期為云計算中的存儲技術提供科學參考。
1 HDFS 存儲系統(tǒng)
HDFS 采用主從架構,由單個名字節(jié)點( NameNode )和多個數(shù)據(jù)節(jié)點( DataNode )組成。NameNode作為主服務器用來管理文件系統(tǒng)的名字空間和規(guī)范用戶端對文件的訪問,存儲著文件名到數(shù)據(jù)塊、數(shù)據(jù)塊到DataNode的兩個映射關系;DataNode是文件存儲的基本單元,它可以將文件塊存儲在本地文件系統(tǒng)中,保存文件塊的元數(shù)據(jù),還可以定期向NameNode發(fā)送現(xiàn)有所有文件塊的報告。兩者之間有緊密的聯(lián)系,通常一個文件被劃分為一個或幾個塊,
這些塊存儲在DataNode中,并且名字空間的打開、關閉和重命名等操作是通過NameNode執(zhí)行的,DataNode需要處理客戶端 Client 發(fā)送的讀寫請求,根據(jù)NameNode的指令執(zhí)行刪除、創(chuàng)建和復制數(shù)據(jù)塊等命令。
2 數(shù)據(jù)存儲系統(tǒng)策略
2.1 數(shù)據(jù)存儲策略
針對 HDFS 存儲海量小文件數(shù)據(jù)時讀取率低、存儲時間長且消耗內存大等問題,本文設計了一種新的存儲方案,以提高海量小文件的存儲效率。該方案是通過客戶端和DataNode存儲管理海量的小文件數(shù)據(jù),通過對存儲在DataNode中的小文件的元數(shù)據(jù)進行管理,減少與NameNode的通信周期而提高小文件的訪問成本,基于 HDFS 數(shù)據(jù)存儲策略總流程如圖1所示,主要由 Hadoop 集群和通過訪問集群使用實際數(shù)據(jù)的客戶端組成,包括塊元數(shù)據(jù)和緩存元數(shù)據(jù)。
2.2 小文件管理方法
一般情況下,小文件大小為幾十到幾百 KB,但 HDFS 的基本存儲單位是64MB 的數(shù)據(jù)塊。因此,通過 HDFS 存儲海量小文件的時候,一個單位塊用來存儲一個幾十 KB 的小文件,將會導致塊數(shù)量急劇增加,消耗大量的內存和增加存儲時間。該方案不是將海量小文件單獨存儲在DataNode中,而是將它們合并為大小不超過64 MB 一個大文件的形式進行存儲管理,在合并文件的上層,以索引的形式處理小文件的位置和大小,允許識別用戶請求文件的位置。
2.3 分布式存儲方案
分布式存儲管理方案旨在提高對小文件的訪問效率,通過使用客戶端緩存和DataNode緩存來存儲和管理海量小文件。小文件數(shù)據(jù)通常非常小,并且可執(zhí)行順序的讀取和寫入等操作。在該方案中,客戶端分別從NameNode和DataNode接收包含被請求文件的塊元數(shù)據(jù),并將它們保存在客戶端緩存中。如果在客戶端緩存中只處理塊元數(shù)據(jù),則請求的文件信息不會在緩存中,反而會被發(fā)送到datanode的磁盤中搜索。
2.4 緩存數(shù)據(jù)替換
分布式緩存數(shù)據(jù)替換策略需要考慮以下兩個問題:小文的件訪問頻率和時間。因為緩存的容量也有限,所以只能處理一定數(shù)量的文件和元數(shù)據(jù)。因此,當緩存已滿,但又請求一個新的小文件時,緩存將刪除存儲文件中確定為容納新文件最少需要的文件。針對小文件,由于存儲的小文件本質上是相互關聯(lián)的信息,不同的用戶通常會請求類似的文件,所以頻繁請求的文件很可能在下次使用。本文采用的緩存替換方案中結合了使用最少使用次數(shù)( LFU)和最近最少使用次數(shù)( LRU)。為了在請求頻率和請求時間之間保持適當?shù)钠胶猓x擇要替換的文件,需要維護一個數(shù)據(jù)訪問模式表,其中包含小文件的名稱、請求頻率(RF)和時間信息(RT)。根據(jù)訪問模式表中維護的每個文件的請求頻率和時間信息,使用公式(1)計算緩存中要替換的文件,其中需要從試驗中選擇合適的α值:
3系統(tǒng)性能測試
3.1測試環(huán)境
為了驗證方案的有效性,本文選用4臺設備構成集群進行系統(tǒng)性能測試,具體硬件參數(shù)如表1所列。
3.2 試驗驗證與分析
為了驗證本文提出的存儲系統(tǒng)的性能,通過與擴展的分布式文件系統(tǒng)存儲結構(EHDFS)存儲方案性能進行對比驗證。其中,EHDFS 存儲方案是利用客戶端緩存高效的訪問海量小文件的最新方案,本文使用的是基于DataNode緩存高效的訪問海量小文件。
3.2.1 請求文件時間比較
為了比較驗證訪問用戶請求文件需要的時間,將小文件訪問時間作為自變量,根據(jù)小文件請求的數(shù)量對小文件訪問時間進行比較評估,驗證結果如圖2所示。
從圖2可知,在 EHDFS 存儲方案中,小文件訪問時間隨著請求頻數(shù)的增加而增加,訪問DataNode的頻率也隨之增加。測試性能評估結果表明,本文使用的分布式緩存方案的小文件訪問時間比 EHDFS 方案減少了67.7%。
3.2.2 小文件訪問頻率比較
為了評估訪問DataNode中的小文件的頻率,該試驗根據(jù)請求數(shù)量和緩存大小評估了DataNode訪問的頻率,結果如圖3所示。
從圖3可知,訪問頻率在1000~8000的范圍內,在 EHDFS 存儲方案中,只有請求的小文件和塊元數(shù)據(jù)在客戶端緩存中,因此當請求緩存中不存在所需的小文件時,通過頻繁訪問DataNode塊來檢索文件。性能評估結果表明,本文使用的分布式緩存方案的小文件訪問頻率比 EHDFS 方案降低了51.4%。
4 結束語
在互聯(lián)網(wǎng)、云計算和大數(shù)據(jù)技術的應用過程中會產(chǎn)生圖片、微視頻等海量的小文件數(shù)據(jù),這對數(shù)據(jù)的有效存儲和綜合管理提出了更高的要求。本文探討了基于 HDFS 存儲海量小文件的方案策略,提高了數(shù)據(jù)讀取率、降低了內存的消耗。通過試驗測試存儲方案的性能,結果表明,本文使用的分布式緩存方案的小文件訪問時間比 EHDFS 方案減少了68%;小文件訪問頻率比 EHDFS 方案降低了57%。該分布式緩存管理方案利用 HDFS 中的NameNode節(jié)點可以快捷地調節(jié)通信周期,提高小文件訪問速度,降低了網(wǎng)絡負載。
參考文獻:
[1]常棟.云計算環(huán)境下基于 HDFS 的對象存儲系統(tǒng)的研究[D].沈陽:東北大學,2015.
[2]郭圣昌.基于 HDFS 的云計算安全技術研究與實現(xiàn)[D].廣州:廣東工業(yè)大學,2013.
[3] Al?Anzi F S ,Salman A A,Jacob N? K .New ProposedRobust,Scalable? and? Secure? Network? Cloud? ComputingStorage Architecture [ J].Journal of Software Engineering and Applications ,2014,7(5):347?353.
[4]徐敏,胡聰,王萍,等.基于云計算技術的大規(guī)模數(shù)據(jù)存儲策略研究[J].微型電腦應用,2022,38(4):80?83+92.
作者簡介:
徐可飛(1994—),本科,研究方向:大數(shù)據(jù)、分布式計算。