亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于HDFS的海量指紋數(shù)據(jù)云存儲優(yōu)化研究*1

        2015-08-18 03:47:56張宇翔趙建民朱信忠徐慧英
        關(guān)鍵詞:實驗

        張宇翔, 趙建民, 朱信忠, 徐慧英

        (浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華 321004)

        基于HDFS的海量指紋數(shù)據(jù)云存儲優(yōu)化研究*1

        張宇翔, 趙建民, 朱信忠, 徐慧英

        (浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華 321004)

        HDFS設(shè)計之初只考慮到如何更好地處理大文件,并沒有針對海量小文件進(jìn)行優(yōu)化,因此,當(dāng)使用HDFS管理海量指紋數(shù)據(jù)小文件時會出現(xiàn)NameNode內(nèi)存負(fù)載過重、上傳及查詢性能過低等問題.采用SequenceFile序列化技術(shù)進(jìn)行小文件的合并,并且對于小文件合并、元數(shù)據(jù)存儲、緩存策略等進(jìn)行了針對性優(yōu)化.實驗證明,該優(yōu)化方案可以有效地解決NameNode內(nèi)存負(fù)載過重的問題,并且海量指紋數(shù)據(jù)小文件的上傳和查詢性能得到了提高.

        HDFS;小文件;SequenceFile;文件合并;元數(shù)據(jù)存儲;緩存策略

        0 引 言

        近年來電子商務(wù)的飛速發(fā)展使得網(wǎng)上的交易量日漸增大,例如在2013年的“雙十一”中,淘寶的日交易額就突破了350億元人民幣[1].隨之而來的問題是如何更好地保障網(wǎng)上交易的安全性.相對于傳統(tǒng)的密碼方式,有學(xué)者提出了使用每個人唯一的指紋信息來保證交易的安全性[2].采用指紋識別技術(shù)保證網(wǎng)上交易的安全性,首先要解決的問題就是海量指紋數(shù)據(jù)的存儲問題.最近出現(xiàn)的云存儲技術(shù)為我們提供了一種新的解決思路.云存儲系統(tǒng)有很多種,例如 GFS,HDFS,MooseFS,Haystack,TFS等.其中,HDFS已經(jīng)比較成熟,而且是一款開源軟件.因此,本文決定采用HDFS進(jìn)行指紋數(shù)據(jù)的存儲管理.HDFS(Hadoop Distributed File System)采用了Master/Slave架構(gòu),該系統(tǒng)由一個NameNode和多個DataNode組成[3].由于HDFS在設(shè)計之初是用來處理大量的大文件的,所以當(dāng)需要用HDFS寫入海量指紋數(shù)據(jù)小文件時,就會出現(xiàn)NameNode內(nèi)存負(fù)載過重的問題:1)一個指紋數(shù)據(jù)文件大概需要1 kb的空間,而這一個文件的元數(shù)據(jù)大概需要150 b.由于云存儲集群中使用的大部分都是普通的PC機(jī),因此,當(dāng)指紋數(shù)據(jù)文件的數(shù)量以億為單位時,NameNode的內(nèi)存就無法支持存儲這么多的元數(shù)據(jù)了[4];2)上傳查詢大量小文件時速度過慢.為了更好地處理大文件,在HDFS中控制流與數(shù)據(jù)流是分開的,元數(shù)據(jù)的生成、查詢等由NameNode完成,而數(shù)據(jù)的上傳讀取由各個節(jié)點分布式完成.但是當(dāng)讀寫大量指紋數(shù)據(jù)小文件時,每一個小文件的讀寫都需要NameNode建立一個任務(wù),每一個任務(wù)的啟動和釋放都需要耗費一定的控制時間,而這樣一次任務(wù)也許只需要1 kb的數(shù)據(jù)傳輸,造成數(shù)據(jù)流傳輸消耗的時間小于控制流傳輸消耗的時間,這樣會導(dǎo)致對小文件訪問的延遲.如果有大量的小文件等待,甚至?xí)斐蒒ameNode的崩潰.

        目前,解決HDFS下的小文件存儲效率問題的主流思想是將小文件合并為大文件[5-6].主要有2種方法:一種是基于Hadoop自帶的HAR[7](Hadoop archives)技術(shù),HAR將大量的小文件合并到一個大文件中,雖然文件個數(shù)減少了,但是所需的存儲空間并不變,而且合并前的源文件不會被自動刪除,需要管理員手動進(jìn)行刪除;另一種方法是基于SequenceFile[8]的序列化文件技術(shù),主要思想是采用〈key,value〉的形式合并大量的小文件,這種方法可以建立良好的索引,而且還可以支持?jǐn)?shù)據(jù)分割與數(shù)據(jù)壓縮.因此,本文選擇采用SequenceFile技術(shù)將大量的小文件合并為大文件.但是,實際應(yīng)用中僅僅采用SequenceFile技術(shù)并不能達(dá)到理想的效果,需要按照實際情況具體問題具體分析.

        1 指紋數(shù)據(jù)存儲優(yōu)化方案設(shè)計

        本文針對指紋數(shù)據(jù)小文件存儲問題提出了一種優(yōu)化方案.由于本文方案中指紋數(shù)據(jù)一般是一次存儲、多次讀取,所以主要優(yōu)化其讀取性能,提高查詢的速度.采用SequenceFile技術(shù)將大量小文件合并成大文件,并且按照地理位置信息進(jìn)行文件的合并及存儲.大文件的元數(shù)據(jù)還是存儲在NameNode的內(nèi)存中,對于小文件來說,熱點文件的元數(shù)據(jù)放置在NameNode的內(nèi)存中,非熱點文件的元數(shù)據(jù)分布式地放置在DataNode的內(nèi)存中.由于本系統(tǒng)中的小文件是按照地理位置進(jìn)行合并及存儲的,因此,在搜索小文件時可以通過增加2~4位有關(guān)地理位置的控制信息來縮短搜索所需要的時間.同時,本文方案針對小文件采用特定的緩存策略,可以有效地減少磁盤寫入及讀取的次數(shù),提高系統(tǒng)性能.

        1.1文件合并

        本文方案采用SequenceFile技術(shù)完成小文件的合并.SequenceFile是Hadoop提供的一個API接口,是為了存儲二進(jìn)制形式的Key-value對而設(shè)計的.SequenceFile共有3種壓縮類型,分別為None,Record和Block.其中:None 是不對記錄進(jìn)行壓縮;Record僅僅壓縮每一個Record中的value值;Block將一個塊中所有的Records壓縮到一起.由于本文提出的優(yōu)化方案是將元數(shù)據(jù)分布式存儲在DataNode上的,所以不需要考慮元數(shù)據(jù)所占的空間,為了查詢更方便,可以選擇僅僅壓縮每一個Record中的value的壓縮方式.同時,在每一個生成的塊的頭文件中增加4 bit的Location Parity用于以后地域位置校驗.經(jīng)過Record類型的SequenceFile合并壓縮之后生成的文件格式如圖1所示.

        為了減輕NameNode負(fù)擔(dān),系統(tǒng)設(shè)計在客戶端與NameNode之間增加一個文件判別合并器,該模塊的功能如流程圖2所示.

        首先,文件判別合并器分析待上傳文件是否屬于小文件,本方案設(shè)定小于1 M的文件屬于小文件,然后按照文件的大小決定存儲方式.若待上傳的文件不屬于小文件,則按照HDFS的常規(guī)方式完成數(shù)據(jù)的存儲;若待上傳的文件屬于小文件,則在文件判別合并器中創(chuàng)建一個文件用來臨時存儲數(shù)據(jù),以后上傳的小文件都寫入到這個文件中,當(dāng)這個文件大于等于63 M且系統(tǒng)空閑時進(jìn)行文件的合并上傳.同時,也要設(shè)定一個等待閾值,不能讓文件等待上傳的時間過長,超過閾值時,即使塊的大小沒有達(dá)到63 M,也要在系統(tǒng)空閑時進(jìn)行數(shù)據(jù)的上傳.

        圖1 SequenceFile中Record壓縮類型文件格式

        圖2 文件判別合并器工作流程

        網(wǎng)上支付系統(tǒng)中的指紋驗證有其特殊性.用戶使用網(wǎng)上支付系統(tǒng)需要先登入賬號,然后通過指紋驗證來完成交易,可以從用戶的賬戶信息中獲得其地理位置信息.本文方案按照地域信息將用戶的指紋數(shù)據(jù)進(jìn)行合并,相同地域信息的指紋數(shù)據(jù)合并到同一個數(shù)據(jù)塊中.若一個地域的指紋數(shù)據(jù)需要合并成多個數(shù)據(jù)塊,則盡量將它們保存到同一個DataNode中.將DataNode與地域信息之間的映射關(guān)系表存儲到NameNode中,方便客戶端的讀取.當(dāng)客戶端發(fā)出查詢請求時,需要在發(fā)給NameNode文件名之前增加4位地理位置位(可以根據(jù)需要具體設(shè)置,位數(shù)越多越精確,消耗的資源也相對越多).查詢時優(yōu)先查找NameNode內(nèi)存,若內(nèi)存命中,則完成此次查詢;若NameNode的內(nèi)存沒有命中,則可以根據(jù)地域信息與DataNode之間的映射表,告知客戶端需要聯(lián)系的DataNode列表,客戶端可以在這些DataNode的內(nèi)存中尋找元數(shù)據(jù).由于這些查找工作都是在內(nèi)存中進(jìn)行的,并不需要進(jìn)行磁盤讀取,因此提高了系統(tǒng)的查詢性能.

        1.2元數(shù)據(jù)存儲

        當(dāng)HDFS被用來處理大量小文件時會出現(xiàn)名字節(jié)點內(nèi)存不足的問題,很多學(xué)者提出采用SequenceFile技術(shù)解決這一問題.SequenceFile技術(shù)在一定程度上可以解決內(nèi)存占用率過高的問題,但是大量的小文件經(jīng)過SequenceFile處理之后,其元數(shù)據(jù)也將是大量的.傳統(tǒng)方案中將大量小文件合并時產(chǎn)生的索引信息存放在NameNode的磁盤中,當(dāng)有大量的小文件同時需要查找時,查找的速度會過慢.本文提出的針對指紋數(shù)據(jù)的存儲優(yōu)化案,大文件的元數(shù)據(jù)還是存儲在名字節(jié)點的內(nèi)存中,只有小文件元數(shù)據(jù)中的熱點數(shù)據(jù)才被存儲在名字節(jié)點的內(nèi)存中,非熱點的小文件的元數(shù)據(jù)則按照地域信息分布存儲在各個數(shù)據(jù)節(jié)點上.地域信息與數(shù)據(jù)節(jié)點的映射關(guān)系表存儲在名字節(jié)點的內(nèi)存中.每一個數(shù)據(jù)節(jié)點的內(nèi)存中只需要保存它所存儲的小文件的元數(shù)據(jù),管理員可以根據(jù)實際情況具體分配名字節(jié)點的內(nèi)存.例如,在本方案中,由于重點處理的是大量的指紋數(shù)據(jù)小文件,因此分配給小文件的內(nèi)存可以適當(dāng)多一些,本文將名字節(jié)點內(nèi)存的60%用來存儲小文件的元數(shù)據(jù),其余的內(nèi)存用來存儲大文件的元數(shù)據(jù)或者空閑.保存在名字節(jié)點中的小文件的元數(shù)據(jù)采用動態(tài)置換策略,當(dāng)某一個小文件1 d的讀取次數(shù)達(dá)到設(shè)定的閾值時被判定為熱點文件,然后將它的元數(shù)據(jù)存儲到名字節(jié)點的內(nèi)存中;當(dāng)一個已經(jīng)被判定為熱點數(shù)據(jù)的小文件3 d內(nèi)讀取次數(shù)達(dá)不到設(shè)定的閾值時,判定為熱點失效,將其元數(shù)據(jù)從名字節(jié)點的內(nèi)存中移除.元數(shù)據(jù)存儲方案如圖3所示.

        1.3緩存策略

        為了進(jìn)一步加快客戶端查詢文件的速度,可以采取一定的緩存策略.首先,在客戶端的緩存中存儲一個最常訪問的DataNode列表,用戶查詢時可以先查詢這個列表中的DataNode內(nèi)存,如果內(nèi)存命中就可以節(jié)省大量的時間.其次,在DataNode的緩存中可以存儲一部分頻繁訪問的小文件數(shù)據(jù),使得高頻率的小文件數(shù)據(jù)讀取不需要經(jīng)過磁盤I/O,一定程度上減少了磁盤讀取的次數(shù),提高了訪問效率.最后,由于NameNode需要經(jīng)常訪問DataNode與地域位置信息的映射關(guān)系表,因此,可以將這個關(guān)系表也存放在緩存中.考慮到熱點數(shù)據(jù),NameNode可以緩存一些熱點小文件的元數(shù)據(jù),即其所在的DataNode、塊ID及在塊中的偏移量.這樣的緩存策略可以進(jìn)一步提高客戶端的訪問速度,優(yōu)化系統(tǒng)性能.

        圖3 元數(shù)據(jù)存儲方案

        2 實驗設(shè)計及實驗結(jié)果

        接下來通過實驗將本文方案、僅僅經(jīng)過SequenceFile改進(jìn)的HDFS方案和原HDFS方案在文件上傳、查詢過程中NameNode的內(nèi)存使用率和所需要的時間作性能比較.

        2.1實驗環(huán)境

        為了對改進(jìn)后的HDFS性能進(jìn)行評估,搭建了一個有10個節(jié)點的HDFS集群,其中1個節(jié)點為NameNode,9個節(jié)點為DataNode.實驗環(huán)境為:5臺SuperCloud SC-R6220服務(wù)器(2U,2節(jié)點),其中CPU為Intel Xeon 4C E5506,2.13 GHz;內(nèi)存4 G;硬盤1 000 G,7 200轉(zhuǎn).操作系統(tǒng)為64位CentOS 5.5;0.20.1版的Hadoop,千兆以太網(wǎng).

        2.2實驗數(shù)據(jù)集

        采用中國科學(xué)院大規(guī)模多模式指紋數(shù)據(jù)庫中的多采集儀交叉匹配數(shù)據(jù)庫.該數(shù)據(jù)庫包含9個子庫,分別由9種主流設(shè)備采集,共有10萬個指紋數(shù)據(jù)文件.一個文件大約10 kb,文件的總大小為1 Gb.

        2.3實驗方案及實驗結(jié)果

        2.3.1 文件上傳性能測試

        實驗1為了方便描述,將本文提出的方案、僅僅采用SequenceFile技術(shù)的HDFS方案分別簡稱為本文方案和SF_HDFS.分別從數(shù)據(jù)集中取出100,1 000,5 000,10 000,50 000,100 000個數(shù)據(jù)上傳到3種系統(tǒng)中,每種實驗進(jìn)行3次,記錄每次上傳所需的時間,并計算其平均值及當(dāng)10萬個數(shù)據(jù)上傳完畢后NameNode內(nèi)存的占用率,最后將3種方案得出的結(jié)果進(jìn)行對比.得出的實驗結(jié)果分別如圖4與圖5所示.

        圖4 小文件上傳時間

        圖5 NameNode內(nèi)存占用百分比

        由實驗結(jié)果可以得出,雖然SF_HDFS采用了SequenceFile對小文件進(jìn)行合并有效地節(jié)省了NameNode的內(nèi)存空間,但是由于每一個小文件進(jìn)行上傳時都要進(jìn)行一次SequenceFile,因此,當(dāng)小文件數(shù)量增多時就會將很多時間浪費在SequenceFile工作中.而本文方案增加了文件判別合并器,減少了SequenceFile的次數(shù),在節(jié)省內(nèi)存的同時減少了上傳文件所需要的時間.

        2.3.2 文件查詢性能測試

        實驗2當(dāng)系統(tǒng)中分別存儲100,1 000,5 000,10 000,50 000,100 000個小文件時分別用3種方案對隨機(jī)小文件進(jìn)行查詢,每一種情況進(jìn)行20次隨機(jī)查詢,統(tǒng)計各種情況下查詢所需要的平均時間,并進(jìn)行對比.考慮到熱點數(shù)據(jù)問題,對同一文件連續(xù)進(jìn)行30次查詢,從實驗數(shù)據(jù)集中選擇30組指紋數(shù)據(jù)文件,計算查詢的平均時間.實驗結(jié)果分別如圖6與圖7所示.

        圖6 小文件隨機(jī)查詢測試

        圖7 熱點小文件查詢測試

        從隨機(jī)小文件性能測試的結(jié)果中可以看出,當(dāng)文件數(shù)量較少時,3種方案的性能差別不明顯,但隨著小文件數(shù)量的增大,本文方案的優(yōu)勢逐漸體現(xiàn)出來.這是由于SF_HDFS需要進(jìn)行二級查詢,HDFS需要進(jìn)行遍歷查詢,但本文方案是針對地域進(jìn)行查詢,只需要查詢地域表再去DataNode的內(nèi)存中進(jìn)行查找.由于在DataNode的內(nèi)存中所需遍歷的數(shù)據(jù)較少,同時在查找到的DataNode上可以直接進(jìn)行數(shù)據(jù)讀取而不需要再進(jìn)行DataNode間的跳躍,因此,當(dāng)小文件增多時本文方案的性能才能更好地體現(xiàn)出來.

        從熱點小文件查詢測試結(jié)果可以得出,當(dāng)文件數(shù)量增多時,SF_HDFS的性能會變差,這是由于它沒有針對熱點數(shù)據(jù)進(jìn)行改進(jìn),相比于HDFS多了一層硬盤級別的查詢,因此,性能不是特別理想.本文方案設(shè)定對應(yīng)的緩存策略,客戶端可以直接從其經(jīng)常訪問的DataNode列表進(jìn)行查詢,同時熱點小文件的內(nèi)容也會保存在緩存中,一定程度上提高了本文方案的查詢效率.

        由以上實驗結(jié)果可以得出,本文針對海量指紋數(shù)據(jù)小文件存儲提出的優(yōu)化方案確實可以提高小文件存儲性能.

        3 結(jié) 語

        針對海量指紋數(shù)據(jù)小文件,采用SequenceFile技術(shù)進(jìn)行小文件的合并,解決NameNode的內(nèi)存問題,同時進(jìn)行了優(yōu)化.通過實驗證明,本文提出的方案確實解決了海量小文件上傳時NameNode內(nèi)存負(fù)載過重的問題,同時提高了小文件上傳及查詢的效率.由于本文方案只用由10個節(jié)點組成的實驗平臺進(jìn)行驗證,當(dāng)真正應(yīng)用到幾千個節(jié)點組成的集群時,索引信息在DataNode上如何更好地進(jìn)行分布式存儲,各個DataNode之間的負(fù)載如何均衡,都需要進(jìn)行進(jìn)一步的研究.本文提出的優(yōu)化方案一定程度上增加了系統(tǒng)設(shè)計的復(fù)雜度,如何減少系統(tǒng)的復(fù)雜度也需要進(jìn)一步的研究.

        [1]魏一東.“雙十一”天貓?zhí)詫毥灰最~破350億突破馬云預(yù)期[EB/OL].2013-03-04[2013-11-12].http://cq.people.com.cn/news/20131112/20131112119149310301.html.

        [2]于秀霞.指紋識別技術(shù)在身份認(rèn)證系統(tǒng)中的應(yīng)用[J].現(xiàn)代情報,2005,9(5):217-220.

        [3]White T.Hadoop:The definitive guide[M].Peking:O′Reilly Media Inc,2011:30-32.

        [4]Konstantin S,Kuang H,Radia S,et al.The Hadoop distributed file system[C]//Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).Nevada:IEEE,2010:273.

        [5]趙曉永,楊揚,孫莉莉,等.基于hadoop的海量MP3文件存儲架構(gòu)[J].計算機(jī)應(yīng)用,2012,32(6):1724-1726.

        [6]余思,桂小林,黃汝維,等.一種提高云存儲中小文件存儲效率的方案[J].西安交通大學(xué)學(xué)報,2011,45(6):59-63.

        [7]Dhruba B.Hadoop Archives[EB/OL].2013-08-04[2014-03-04].http://hadoop.apache.org/common/docs/current/Hadooparchives.html.

        [8]Liu X J,Xu Z Q,Gu X.Study on the small files problem of Hadoop[C]//2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems.Hangzhou:IEEE Beijing Section,2010:278-281.

        (責(zé)任編輯 陶立方)

        HDFS-basedstorageresearchformassfingerprintdata

        ZHANG Yuxiang, ZHAO Jianmin, ZHU Xinzhong, XU Huiying

        (CollegeofMathematics,PhysicsandInformationEngineering,ZhejiangNormalUniversity,JinhuaZhejiang321004,China)

        When designed the HDFS, it was usually only considered how to handle large files better, and HDFS was not optimized for massive small files. When used HDFS to manage massive small files such as fingerprint datafiles there were some difficulties. For example, overloading of the NameNode and the performances of upload and query were not satisfied. The serialization technology named SequenceFile to merge small files was used and some targeted optimization about the merging of small files, the storage of metadata and the caching strategies were considered. Experimental results showed that the proposed scheme could effectively deal with the problem of NameNode memory′s overloading. The upload and query performances about massive small files sucn as fingerprint datafiles were also improved.

        HDFS; small files; SequenceFile; merging of files; metadata storage; caching strategies

        10.16218/j.issn.1001-5051.2015.02.010

        2014-09-12

        國家自然科學(xué)基金資助項目(6127268)

        張宇翔(1989-),男,河南安陽人,碩士研究生.研究方向:云計算;虛擬現(xiàn)實技術(shù).

        TP391.4

        A

        1001-5051(2015)02-0179-06

        猜你喜歡
        實驗
        我做了一項小實驗
        記住“三個字”,寫好小實驗
        我做了一項小實驗
        我做了一項小實驗
        記一次有趣的實驗
        有趣的實驗
        小主人報(2022年4期)2022-08-09 08:52:06
        微型實驗里看“燃燒”
        做個怪怪長實驗
        NO與NO2相互轉(zhuǎn)化實驗的改進(jìn)
        實踐十號上的19項實驗
        太空探索(2016年5期)2016-07-12 15:17:55
        亚洲一区二区三区18| 国产精品6| 精品不卡久久久久久无码人妻| 亚洲中文有码一区二区| 中国少妇久久一区二区三区| 亚洲视频在线观看| 日本黄页网站免费大全| 熟女少妇av免费观看| 一区二区三区视频亚洲| 少妇中文字幕乱码亚洲影视| 亚洲av色无码乱码在线观看| 国产对白刺激在线观看| 亚洲毛片免费观看视频| 疯狂的欧美乱大交| xxxx国产视频| 国产一区二区三区免费小视频| 黄片视频免费观看蜜桃| 人妻少妇精品无码专区二区 | 久久久久成人精品无码| 啪啪免费网站| 国产自产自现在线视频地址| 男女av一区二区三区| 国产高颜值大学生情侣酒店| 亚洲 欧美 激情 小说 另类| 免费蜜桃视频在线观看| 天天躁日日躁aaaaxxxx| 成人国产精品免费视频| 91色婷婷成人精品亚洲| 亚洲国产丝袜久久久精品一区二区 | 男女性高爱潮免费网站| 女同中的p是什么意思| 日本国产一区二区在线| 欧美老妇多毛xxxxx极瑞视频| 日本a级特黄特黄刺激大片| 日韩精品一区二区av在线| 精品国产成人av久久| 日本熟妇色xxxxx欧美老妇| 亚洲午夜看片无码| 激情五月天在线观看视频| 小sao货水好多真紧h无码视频| 国产精品一久久香蕉国产线看观看|