摘要:針對在云計算中HDFS存儲小文件數據讀取率低、時間長和內存消耗大等缺點,文章提出了一種分布式緩存方案策略,通過每個DataNode節點緩存處理客戶端頻繁訪問的小文件,從而顯著降低了DataNode磁盤訪問的頻率,提高了數據的存儲效率,以期為云計算中的存儲技術提供科學參考。
關鍵詞:云計算;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
近年來,隨著計算機和互聯網應用技術的快速發展,云計算作為一種新的計算模式應用而生。云計算是基于互聯網整合各種計算資源,通過軟件實現自動化管理,用戶可以按照需求獲取各種資源的模式。云計算具有服務針對性、靈活便捷、虛擬化、可度量性和動態可擴展的特點。云計算技術已經普遍應用在各種互聯網服務中,通過云端共享數據資源,在圖像處理、數據挖掘、數字傳輸、電子商務和醫療教育等領域廣泛應用[1]。在云計算技術應用的過程中會產生海量的數據,并且數據的規模呈指數級增長,對數據的有效存儲和綜合管理提出了更高的要求[2]。國內外諸多學者針對云計算數據存儲問題開展了研究,如Anzi[3]提出了一種可靠性、可擴展性和安全性更強的數據存儲架構,它可以將用戶的數據加密并分割成不同的密文塊,并在不同的服務站點之間分發;徐敏等[4]采用虛擬化技術搭建云計算平臺,利用 MC 算法和 AES 算法對數據進行處理,結果表明該方法具有較高的存儲實時性和安全性;袁愛平等采用改變云環境中虛擬機方法對存儲方案進行了改進,平衡數據塊在物理節點中的存儲,提高了系統的可靠性。
隨著互聯網、云計算和大數據的快速發展,人們的日常生活和工作中會產生大量的小文件,如圖片、微視頻等數據文件。這些小文件數據規模越來越大,因此高效地存儲海量小文件數據是非常重要的應用需求。 HDFS(Hoop Distributed File System)是一個開源框架,可以存儲大文件和海量的數據,具有較高的容錯性,方便部署在常規硬件上,通過流的形式訪問文件數據,基本性能優于現有的分布式文件系統。HDFS 存儲系統是針對大文件數據設計的,對于存儲小文件數據時,NameNode處理大量的元數據時讀取率低、時間過長且內存消耗巨大,極大的降低了存儲效率。因此,本文針對云計算中HDFS 存儲海量小文件問題進行分析和研究,設計合理的海量小文件存儲方案,優化存儲效率,以期為云計算中的存儲技術提供科學參考。
1 HDFS 存儲系統
HDFS 采用主從架構,由單個名字節點( NameNode )和多個數據節點( DataNode )組成。NameNode作為主服務器用來管理文件系統的名字空間和規范用戶端對文件的訪問,存儲著文件名到數據塊、數據塊到DataNode的兩個映射關系;DataNode是文件存儲的基本單元,它可以將文件塊存儲在本地文件系統中,保存文件塊的元數據,還可以定期向NameNode發送現有所有文件塊的報告。兩者之間有緊密的聯系,通常一個文件被劃分為一個或幾個塊,
這些塊存儲在DataNode中,并且名字空間的打開、關閉和重命名等操作是通過NameNode執行的,DataNode需要處理客戶端 Client 發送的讀寫請求,根據NameNode的指令執行刪除、創建和復制數據塊等命令。
2 數據存儲系統策略
2.1 數據存儲策略
針對 HDFS 存儲海量小文件數據時讀取率低、存儲時間長且消耗內存大等問題,本文設計了一種新的存儲方案,以提高海量小文件的存儲效率。該方案是通過客戶端和DataNode存儲管理海量的小文件數據,通過對存儲在DataNode中的小文件的元數據進行管理,減少與NameNode的通信周期而提高小文件的訪問成本,基于 HDFS 數據存儲策略總流程如圖1所示,主要由 Hadoop 集群和通過訪問集群使用實際數據的客戶端組成,包括塊元數據和緩存元數據。
2.2 小文件管理方法
一般情況下,小文件大小為幾十到幾百 KB,但 HDFS 的基本存儲單位是64MB 的數據塊。因此,通過 HDFS 存儲海量小文件的時候,一個單位塊用來存儲一個幾十 KB 的小文件,將會導致塊數量急劇增加,消耗大量的內存和增加存儲時間。該方案不是將海量小文件單獨存儲在DataNode中,而是將它們合并為大小不超過64 MB 一個大文件的形式進行存儲管理,在合并文件的上層,以索引的形式處理小文件的位置和大小,允許識別用戶請求文件的位置。
2.3 分布式存儲方案
分布式存儲管理方案旨在提高對小文件的訪問效率,通過使用客戶端緩存和DataNode緩存來存儲和管理海量小文件。小文件數據通常非常小,并且可執行順序的讀取和寫入等操作。在該方案中,客戶端分別從NameNode和DataNode接收包含被請求文件的塊元數據,并將它們保存在客戶端緩存中。如果在客戶端緩存中只處理塊元數據,則請求的文件信息不會在緩存中,反而會被發送到datanode的磁盤中搜索。
2.4 緩存數據替換
分布式緩存數據替換策略需要考慮以下兩個問題:小文的件訪問頻率和時間。因為緩存的容量也有限,所以只能處理一定數量的文件和元數據。因此,當緩存已滿,但又請求一個新的小文件時,緩存將刪除存儲文件中確定為容納新文件最少需要的文件。針對小文件,由于存儲的小文件本質上是相互關聯的信息,不同的用戶通常會請求類似的文件,所以頻繁請求的文件很可能在下次使用。本文采用的緩存替換方案中結合了使用最少使用次數( LFU)和最近最少使用次數( LRU)。為了在請求頻率和請求時間之間保持適當的平衡,選擇要替換的文件,需要維護一個數據訪問模式表,其中包含小文件的名稱、請求頻率(RF)和時間信息(RT)。根據訪問模式表中維護的每個文件的請求頻率和時間信息,使用公式(1)計算緩存中要替換的文件,其中需要從試驗中選擇合適的α值:
3系統性能測試
3.1測試環境
為了驗證方案的有效性,本文選用4臺設備構成集群進行系統性能測試,具體硬件參數如表1所列。
3.2 試驗驗證與分析
為了驗證本文提出的存儲系統的性能,通過與擴展的分布式文件系統存儲結構(EHDFS)存儲方案性能進行對比驗證。其中,EHDFS 存儲方案是利用客戶端緩存高效的訪問海量小文件的最新方案,本文使用的是基于DataNode緩存高效的訪問海量小文件。
3.2.1 請求文件時間比較
為了比較驗證訪問用戶請求文件需要的時間,將小文件訪問時間作為自變量,根據小文件請求的數量對小文件訪問時間進行比較評估,驗證結果如圖2所示。
從圖2可知,在 EHDFS 存儲方案中,小文件訪問時間隨著請求頻數的增加而增加,訪問DataNode的頻率也隨之增加。測試性能評估結果表明,本文使用的分布式緩存方案的小文件訪問時間比 EHDFS 方案減少了67.7%。
3.2.2 小文件訪問頻率比較
為了評估訪問DataNode中的小文件的頻率,該試驗根據請求數量和緩存大小評估了DataNode訪問的頻率,結果如圖3所示。
從圖3可知,訪問頻率在1000~8000的范圍內,在 EHDFS 存儲方案中,只有請求的小文件和塊元數據在客戶端緩存中,因此當請求緩存中不存在所需的小文件時,通過頻繁訪問DataNode塊來檢索文件。性能評估結果表明,本文使用的分布式緩存方案的小文件訪問頻率比 EHDFS 方案降低了51.4%。
4 結束語
在互聯網、云計算和大數據技術的應用過程中會產生圖片、微視頻等海量的小文件數據,這對數據的有效存儲和綜合管理提出了更高的要求。本文探討了基于 HDFS 存儲海量小文件的方案策略,提高了數據讀取率、降低了內存的消耗。通過試驗測試存儲方案的性能,結果表明,本文使用的分布式緩存方案的小文件訪問時間比 EHDFS 方案減少了68%;小文件訪問頻率比 EHDFS 方案降低了57%。該分布式緩存管理方案利用 HDFS 中的NameNode節點可以快捷地調節通信周期,提高小文件訪問速度,降低了網絡負載。
參考文獻:
[1]常棟.云計算環境下基于 HDFS 的對象存儲系統的研究[D].沈陽:東北大學,2015.
[2]郭圣昌.基于 HDFS 的云計算安全技術研究與實現[D].廣州:廣東工業大學,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]徐敏,胡聰,王萍,等.基于云計算技術的大規模數據存儲策略研究[J].微型電腦應用,2022,38(4):80?83+92.
作者簡介:
徐可飛(1994—),本科,研究方向:大數據、分布式計算。