《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Hadoop的小文件量化方法研究
基于Hadoop的小文件量化方法研究
2014年微型機與應用第13期
譚躍生,趙玉龍,王靜宇
內蒙古科技大學 信息工程學院,內蒙古 包頭
摘要: Hadoop[1]是一個具有高擴展性、高可靠性、高容錯性和高效性的開源軟件系統,它已成為互聯網、金融、生物信息學等領域進行大數據分析和處理的代表性云計算平臺。它由Hadoop Distributed File System(HDFS)[2]和MapReduce[3]兩部分組成,其中,MapReduce主要用來處理數據密集型數據,而HDFS則主要負責大數據的存儲。
Abstract:
Key words :

  摘  要: 針對目前Hadoop平臺不能高效處理海量小文件而出現的小文件問題,提出一種基于曲線擬合最小二乘法的確定Hadoop平臺下何為小文件的方法。該方法首先確定小文件訪問時間的量化方法,然后采用訪問時間作為確立何為小文件的影響因子,通過對不同數據集大小的不同訪問時間的實驗,最終結合線性擬合的相關知識找到了小文件大小的量化方法。

  關鍵詞: Hadoop;小文件問題;曲線擬合的最小二乘法;線性擬合

  Hadoop[1]是一個具有高擴展性、高可靠性、高容錯性和高效性的開源軟件系統,它已成為互聯網、金融、生物信息學等領域進行大數據分析和處理的代表性云計算平臺。它由Hadoop Distributed File System(HDFS)[2]和MapReduce[3]兩部分組成,其中,MapReduce主要用來處理數據密集型數據,而HDFS則主要負責大數據的存儲。

  HDFS的產生得益于Google File System(GFS)[4],它遵循一次寫、多次讀的流數據訪問模式,采用Master-Slave架構,其中的Master,即NameNode,作為單一的節點來管理整個文件系統中所存儲數據的元數據。為了快速響應客戶端的讀寫請求,NameNode將文件的元數據存放在內存當中。HDFS設計之初就是為了處理海量大文件的,因此,它能高效地存儲和處理海量大文件的讀寫請求。然而,HDFS不能高效地處理海量小文件,小文件問題[5]由此產生。目前,學術界關注的小文件問題有:(1)海量小文件耗費主節點內存;(2)海量小文件的I/O效率低,沒有一種優化機制來提高I/O性能;(3)HDFS下沒有明確的能夠區分何為小文件的大小文件分界點;(4)海量小文件的放置未考慮文件相關性[6]。針對大小文件的分界點問題提出一種確定何為小文件的方法。在深入研究HDFS存儲和訪問機制的基礎上,經過海量小文件訪問、指數擬合和線性擬合等過程,確定了大小文件的臨界點。

  1 相關研究

  Hadoop集群分為NameNode和DataNode兩部分,NameNode負責HDFS中文件元數據的存放和對客戶端訪問的控制,DataNode則負責提供塊存儲,為客戶端的I/O請求提供服務,并根據NameNode的指令執行塊的讀寫操作。其中,NameNode為了向客戶端高效地提供元數據信息,將每個文件的元數據信息都存放在內存當中,包括文件名、相應文件對應的塊號以及持有這些塊的DataNode信息。因此,當客戶端請求創建、讀、寫和刪除等操作時,客戶端都需要先向主節點查詢元數據信息,然后跟相應的數據節點交互,執行需要的操作。

  然而,NameNode節點是單一的,其對應的內存大小也是固定的,當一個大于文件塊大小的文件存儲到HDFS中時,產生的元數據僅僅由文件大小決定,但當海量小文件存儲到HDFS中時,每個小文件都會形成一個文件塊,因此會產生相當大的元數據信息,例如,假設一個文件的文件塊會產生150 B的元數據信息,對于1GB的文件,會被分成16個大小為64 MB的塊,此時會產生2.4KB的元數據,然而,對于10 600個大小為100 KB的文件(總大小1 GB),這種情況下將會產生1.5 MB的元數據信息。因此,海量小文件會占用大量的主節點內存,進而當處理海量小文件時,單一的主節點內存就會成為瓶頸,進而影響小文件的存儲和訪問性能,小文件問題由此而生。

  參考文獻[7]指出小文件就是那些文件大小明顯小于HDFS默認塊大小64 MB的文件,海量小文件的產生會限制許多包含大量小文件的應用獲益于Hadoop平臺。Liu等人[8]針對包含大量小文件的典型應用WebGIS,提出了一種基于HDFS的提升小文件I/O性能的方法。基本思想就是通過小文件合并成大文件來減少文件的數目,然后為每個文件建立索引,同時考慮WebGIS的文件相關特征。實驗表明,該方法確實能夠提高Hadoop處理WebGIS下相關小文件的處理性能,但它們將文件大小小于16 MB的文件作為小文件,并且沒有具體的理論分析和實驗來證明16 MB就是大小文件的臨界值。

  2 小文件量化過程

  2.1 Hadoop下小文件訪問時間量化

  當從HDFS中訪問一個文件時,訪問過程如下。

  (1)客戶端通過初始化RPC(Remote Procedure Calls)[9]請求向NameNode發送讀指令,其時間開銷記為tCN;

  (2)NameNode在內存中查詢相應文件的元數據,時間開銷記為tmetadata;

  (3)所需文件的元數據返回到客戶端,時間開銷記為tNC;

  (4)客戶端向相關DataNode發送讀取指令,時間開銷記為tCD;

  (5)DataNode從磁盤中取出所需文件的文件塊,時間開銷記為tdisk;

  (6)所需文件的相應文件塊返回到客戶端,所需時間記為tnetwork。

  其中,因為tCN和tCD是發送指令所帶來的開銷,通常作為常量;同時,由于元數據非常小,tmetadata也可以當做常量;tnetwork與所讀取文件的長度(L)和網絡傳輸速度(V)有關,因此,它可以表示為δnetwork(L/V)。

  假設有N個不同的小文件,文件長度分別表示為L1,L2,L3,…,Ln,那么N個文件的訪問時間可以表示為:

  1.jpg

  其中,因為對于小文件來講,每一個文件僅僅有一個塊,所以讀取塊數和文件的個數是相等的,即M和N相等,那么式(1)還可表示為:

  2.jpg

  2.2 文件隨機訪問算法

  文件隨機訪問算法通過N來控制隨機數的產生個數,進而來控制隨機訪問的文件,然后調用HDFS提供的訪問API來獲取分布式文件系統中存放的文件,最終返回訪問指定文件個數的文件所需要的時間,具體算法偽代碼如下。

  Input:SmallFile

  Output:AccessTime

  Create a collection//創建一個集合

  getConfiguration()//獲取HDFS必要的文件配置信息

  for(int i=0;i<N;i++){

  //N為隨機下載的文件個數

  int j=getRandom()//獲取一個隨機數

  add(j)//將隨機數添加到集合中

  }

  collectionIterator();//創建一個迭代器

  Long t1=getStarttime()

  while(iterator.hasNextNumber){

  getNextValue()//獲取迭代器中的隨機數

  Path src//HDFS中符合相應隨機數的文件路徑

  Path dst//訪問隨機文件的存放路徑

  copyToLocalFile(src,dst)

  }

  Close()//關閉分布式文件系統

  long t2=getStopTime()

  output(“AceessTime”,t2-t1)

  2.3 曲線擬合的最小二乘法

  若要求一個函數y=S*(x)與所給數據{(xi,yi),i=0,1,…,m}擬合,若記誤差δi=y-S*(xi)-yi(i=0,1,…,m),δ=(δ0,δ1,…,δm)T,設?漬0(x),?漬1(x),…,?漬n(x)是C[a,b]上線性無關函數族,在?漬=span{?漬0(x),?漬1(x),…,?漬n(x)}中找一個函數S*(x),使誤差平方和

  3.jpg

  以上就是一般的最小二乘逼近,用幾何語言說,就成為曲線擬合的最小二乘法[10]。

  3 實驗結果與分析

  3.1 實驗環境

  實驗所用Hadoop平臺包含6臺PC,其中1臺作為NameNode,其他5臺為DataNode,每臺機器的配置為:Intel Core 2(2.99 GHz)處理器,2 GB內存,160 GB硬盤。

  所有節點均連接在1.0 Gb/s的以太網中。每臺機器的軟件環境為:操作系統采用內核為3.5.0-25的Ubuntu 12.04,集群的Hadoop版本為1.1.2,Java版本是JDK 7.0。

  其中HDFS的默認副本數為3,塊大小默認為64 MB。

  3.2 數據集

  實驗所采用的數據集共有23個,數據集內容來自于China Daily的新聞稿,各個數據集分別命名為ds1,ds2,…ds23。每個數據集分別包含10 000個文件,數據集大小有0.5 MB~64 MB不等,具體分布情況如圖1所示。

001.jpg

  3.3 實驗方法

  分別將上述數據集上傳到空白的HDFS中,然后采用上文所提到的文件隨機訪問算法隨機獲取500個文件到本地文件系統,同時記錄下程序反饋的每個數據集的訪問時間。

  每個數據集的訪問時間測試分別進行7次,然后舍棄其中的兩個最大值和兩個最小值,剩余的3組值取平均,最后以平均值作為每個數據集的實驗所得訪問時間。通過這種方法來過濾掉因網絡擁塞或者其他未知因素導致的噪聲點。

  測得每組數據的平均訪問時間后,分別計算每組數據集的平均訪問速率,當HDFS默認塊大小為64 MB時,其訪問速率與文件大小在曲線擬合后的關系如圖2所示。

002.jpg

  根據圖2圖像的變化規律可知,小文件數據集的訪問速率在一定范圍內變化顯著,隨著數據集文件大小的增大,變化逐步趨于平緩。根據指數函數的特性,為了更好地觀察其變化規律,分別對x和y軸取對數,由圖3可明顯地看到前8個數據點在一條直線上,而除此之外的其他數據點在另外的直線上,然后采用線性擬合的方法,得到兩直線交點,進而得到對應直線交點的文件大小為4.38 MB。

004.jpg

003.jpg

  此外,針對dfs.blocksize默認塊大小為48 MB的情況也進行相同的實驗,得到的結果如圖4所示。其中,文件塊大小為48 MB的線性擬合后直線交點處所對應的文件臨界值大小為4.41,很明顯,文件塊大小在64 MB和48 MB兩種情況下,這個臨界點文件大小幾乎相同,由此確定了大小文件的臨界值大小。

  提出一種確定Hadoop平臺下大小文件分界點的方法,該方法首先確定了Hadoop平臺下小文件的訪問時間量化方法,然后通過客戶端隨機訪問HDFS中不同大小數據集的不同訪問時間,并且結合曲線擬合的最小二乘法相關知識,通過實驗找到了大小文件的臨界點。今后的工作將考慮通過對其他相關因子的量化來進一步細化該臨界點的獲取方法。此外,計劃在結合大小文件的臨界點問題的基礎上,針對小文件問題進行進一步研究,并且結合文件合并、文件的分布式索引和相應的緩存預提取等機制來優化Hadoop平臺下海量小文件的讀取和存儲性能。

  參考文獻

  [1] WHITE T. Hadoop: The Definitive Guide, 2nd[M]. California: O′Reilly Media, 2009.

  [2] SHVACHKO K, KUANG H, RADIA S, et al. The hadoop distributed file system[C]. Proceedings of IEEE 26th Symposium on Mass Storage Systems and Technologies, Incline Village, USA: IEEE Press,2010:1-10.

  [3] DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters[J]. Communications of the ACM,2008, 51(1):107-111.

  [4] SEHRISH S, MACKEY G, WANG J, et al. MRAP: a novel MapReduce-based framework to support HPC analytics applications with access patterns[C]. Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing. New York, USA: ACM Press, 2010:107-118.

  [5] Liu Xiaojun, Xu Zhengquan, Gu Xin. Study on the small files problem of Hadoop[C]. Proceedings of 2012 IEEE 2nd International Conference on Cloud Computing and Intelligence Systems, Hangzhou, China: IEEE Press,2012:278-281.

  [6] DONG B, QIU J, ZHENG Q, et al. A novel approach to improving the efficiency of storing and accessing small files on hadoop: A case study by PowerPoint files[C]. Proceedings of the IEEE International Conference on Services Computing. Florida, USA: IEEE Press,2010:65-72.

  [7] The small files problem[EB/OL]. http://www.cloudera.com/blog/2009/02/the-smallfiles-problem/,2009.

  [8] Liu X, Han J, Zhong Y, et al. Implementing  WebGIS on Hadoop: a case study of improving small file I/O Performance on HDFS[C]. Proceedings of the IEEE international conference on cluster computing and workshops. New Orleans, USA: IEEE Press,2009:1-8.

  [9] CHANDRASEKAR S, DAKSHINAMURTHY R, SESHAK-UMAR P G, et al. A novel indexing scheme for efficient handling of small files in Hadoop distributed file system[C]. Proceedings of the International Conference on Computer Communication and Informatics. Coimbatore, USA: IEEE Press,2013: 1-8.

  [10] 陳珂,鄒權.融入時間關聯因子曲線擬合的交通流異常挖掘方法[J].計算機工程與設計,2013,34(7):2561-2565.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线亚洲伦理| 亚洲精一区二区三区| 国产婷婷成人久久av免费高清| 欧美丰满高潮xxxx喷水动漫| 久久精品视频网| 最新日韩av| 久久精品国产精品亚洲| 欧美亚洲一区在线| 亚洲国产欧美国产综合一区| 欧美调教vk| 欧美日本久久| 久久久久一区二区三区| 欧美一级大片在线观看| 午夜伦理片一区| 先锋影音网一区二区| 最新日韩在线| 亚洲免费视频观看| 中文一区二区| 亚洲二区在线视频| 136国产福利精品导航网址| 在线播放中文字幕一区| 亚洲高清不卡在线观看| 国产精品欧美一区二区三区奶水| 欧美三级在线视频| 欧美午夜电影网| 女女同性精品视频| 性8sex亚洲区入口| 性久久久久久久久久久久| 午夜精品久久久久久久99樱桃 | 久久久免费精品视频| 久久久另类综合| 亚洲一区视频| 亚洲综合色激情五月| 欧美伊久线香蕉线新在线| 久久理论片午夜琪琪电影网| 亚洲永久免费av| 亚洲三级影院| 一本色道久久综合亚洲精品不| 亚洲一区二区四区| 欧美一区二区三区四区在线观看地址| 亚洲精品在线电影| 久久精品国产欧美激情| 亚洲大胆人体视频| 国产精品青草久久| 久久精品国产清自在天天线| 久久国产天堂福利天堂| 一区二区黄色| 亚洲高清视频一区二区| 亚洲精品日产精品乱码不卡| 亚洲视频久久| 久久国产精品久久久| 免费看成人av| 欧美午夜精品久久久久久孕妇| 国产精品日韩久久久| 欧美日韩亚洲一区在线观看| 欧美14一18处毛片| 久久久久国产精品人| 亚洲欧美日韩精品久久久久| 久久久国产精品一区二区中文| 午夜精品一区二区三区在线视| 亚洲少妇最新在线视频| 性8sex亚洲区入口| 午夜欧美精品久久久久久久| 久久精品视频网| 久久精彩视频| 欧美亚洲免费| 免费观看久久久4p| 国产精品久久久一本精品| 国产精品chinese| 狠狠色丁香婷婷综合影院| 一区二区三区精品视频| 亚洲第一视频| 最近中文字幕日韩精品| 亚洲一区精彩视频| 午夜精品久久久久久久久久久久| 亚洲一区二区动漫| 另类激情亚洲| 国产精品视频导航| 国产欧美精品久久| 亚洲激情视频网| 欧美在线免费观看视频| 亚洲国产精品电影| 亚洲精品视频免费| 欧美一级在线视频| 欧美日韩国产另类不卡| 狠狠干狠狠久久| 亚洲在线视频| 一区二区三区精品国产| 免费在线观看成人av| 国产色产综合产在线视频| 一道本一区二区| 99国内精品久久| 老司机成人在线视频| 国产日韩三区| 在线成人www免费观看视频| 亚洲一区二区在线播放| 亚洲视频中文| 欧美在线一二三| 久久久欧美精品| 国产精品亚洲成人| 狠久久av成人天堂| 亚洲免费人成在线视频观看| 亚洲欧美www| 欧美日韩一区二区在线播放| 亚洲激情亚洲| 亚洲男同1069视频| 欧美在线免费| 欧美在线高清视频| 欧美福利在线| 欧美日韩高清免费| 国产精品免费一区二区三区观看| 亚洲人成网站999久久久综合| 亚洲经典一区| 欧美成人精品不卡视频在线观看 | 国产一区三区三区| 亚洲字幕一区二区| 久久电影一区| 久久精品国产77777蜜臀| 国产日韩欧美成人| 亚洲女同在线| 亚洲精品中文字幕在线| 午夜视频一区二区| 麻豆精品国产91久久久久久| 狠狠色综合色区| 亚洲成人自拍视频| 亚洲一区二区三区四区五区午夜| 欧美美女bbbb| 欧美午夜一区二区| 在线视频精品一区| 亚洲人体大胆视频| 欧美不卡三区| 日韩午夜在线视频| 亚洲国产精品久久久久婷婷884 | 国产精品国产三级国产aⅴ浪潮 | 国产精品丝袜白浆摸在线| 亚洲综合色网站| 99国产精品久久久久老师| 欧美激情视频给我| 亚洲精品一区二区三区不| 在线亚洲精品| 免费在线成人av| 亚洲国产一区视频| 999亚洲国产精| 国产精品电影在线观看| 最新高清无码专区| 日韩亚洲不卡在线| 久久男人av资源网站| 欧美亚洲第一区| 亚洲一区久久| 亚洲午夜av| 欧美电影免费网站| 国产一区二区三区久久精品| 久久精品国产久精国产思思| 欧美高清视频在线播放| 国产一区二区三区久久| 亚洲一区观看| 国产精品99久久久久久宅男| 国产精品地址| 制服丝袜亚洲播放| 欧美一区激情视频在线观看| 黑丝一区二区| 欧美诱惑福利视频| 欧美jizz19性欧美| 日韩亚洲国产欧美| 久久成人免费日本黄色| 欧美亚男人的天堂| 亚洲伦理在线| 欧美与黑人午夜性猛交久久久| 国产精品ⅴa在线观看h| 亚洲美女视频| 欧美一区二区三区婷婷月色 | 亚洲国产另类精品专区| 久久国产精品99久久久久久老狼| 久久综合久久综合这里只有精品 | 一本大道久久精品懂色aⅴ| 欧美18av| 亚洲二区视频在线| 亚洲欧美成人一区二区在线电影 | 久久国产一区| 欧美日韩一区视频| 亚洲精品国产精品乱码不99| 亚洲欧美国产精品va在线观看| 国模精品娜娜一二三区| 一区二区三区成人精品| 国产一区二区三区精品欧美日韩一区二区三区 | 国产欧美精品一区二区色综合| 亚洲欧洲精品一区二区三区波多野1战4 | 一区在线免费| 亚洲欧美视频在线观看视频| 亚洲国产精品福利| 欧美在线一级va免费观看| 国产欧美一区二区精品婷婷| 亚洲免费高清视频| 欧美日韩一区二区视频在线| 一区二区三区国产精华| 亚洲网站在线观看| 国产精品国产馆在线真实露脸| 亚洲电影激情视频网站| 久久综合伊人77777| 亚洲影院免费|