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