• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2015-08-18 03:47:56張宇翔趙建民朱信忠徐慧英
    關鍵詞:海量內(nèi)存指紋

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

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

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

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

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

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

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

    0 引 言

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

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

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

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

    1.1文件合并

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

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

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

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

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

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

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

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

    1.3緩存策略

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

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

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

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

    2.1實驗環(huán)境

    為了對改進后的HDFS性能進行評估,搭建了一個有10個節(jié)點的HDFS集群,其中1個節(jié)點為NameNode,9個節(jié)點為DataNode.實驗環(huán)境為:5臺SuperCloud SC-R6220服務器(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ù)集

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

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

    2.3.1 文件上傳性能測試

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

    圖4 小文件上傳時間

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

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

    2.3.2 文件查詢性能測試

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

    圖6 小文件隨機查詢測試

    圖7 熱點小文件查詢測試

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

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

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

    3 結(jié) 語

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

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

    [2]于秀霞.指紋識別技術在身份認證系統(tǒ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].計算機應用,2012,32(6):1724-1726.

    [6]余思,桂小林,黃汝維,等.一種提高云存儲中小文件存儲效率的方案[J].西安交通大學學報,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.

    (責任編輯 陶立方)

    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

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

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

    TP391.4

    A

    1001-5051(2015)02-0179-06

    猜你喜歡
    海量內(nèi)存指紋
    一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
    像偵探一樣提取指紋
    為什么每個人的指紋都不一樣
    海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
    當代陜西(2019年14期)2019-08-26 09:42:00
    “春夏秋冬”的內(nèi)存
    當代陜西(2019年13期)2019-08-20 03:54:22
    一個圖形所蘊含的“海量”巧題
    基于自適應稀疏變換的指紋圖像壓縮
    自動化學報(2016年8期)2016-04-16 03:39:00
    可疑的指紋
    基于內(nèi)存的地理信息訪問技術
    基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲與組織研究
    丰台区| 北宁市| 来凤县| 咸宁市| 高要市| 苍梧县| 图片| 怀仁县| 兰州市| 杨浦区| 武陟县| 长沙县| 百色市| 西乡县| 德昌县| 天门市| 墨脱县| 丹阳市| 阳西县| 水城县| 香港 | 临潭县| 丰顺县| 东平县| 扎兰屯市| 武隆县| 扎赉特旗| 大竹县| 娄烦县| 柳林县| 石城县| 边坝县| 玉屏| 界首市| 黔江区| 武定县| 临夏县| 博爱县| 浦县| 绥江县| 大城县|