999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

HDFS小文件讀寫優化策略*

2016-10-28 09:30:33朱永強周珂李丹趙亞萌
計算機時代 2016年9期

朱永強++周珂++李丹++趙亞萌

DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.003

摘 要: HDFS是一種高容錯性的分布式系統。它支持的數據集在GB到TB級別,然而對大量小文件存取支持不足。由于在處理大數量級的小文件時,會使得NameNode內存消耗過度,造成文件的存取性能降低。因此提出了一種根據文件類型分類小文件的合并策略。通過建立索引信息服務器來存儲存放在用戶文件中的小文件的元數據信息,可以達到高效讀取小文件的目的。實驗結果表明,該優化策略能有效降低NameNode內存消耗,提高HDFS文件系統對大量小文件讀取效率。

關鍵詞: HDFS; 小文件存??; 文件類型; 用戶文件; 元數據信息

中圖分類號:TP391 文獻標志碼:A 文章編號:1006-8228(2016)09-09-04

HDFS small file read and write optimization strategy

Zhu Yongqiang1,2, Zhou Ke1,2, Li Dan1,2, Zhao Yameng2

(1. School of Computer and Information Engineering Henan University, Kaifeng, Henan 475004, China;

2. Institute of Remote Sensing and Digital Earth Chinese Academy of Sciences)

Abstract: HDFS is a kind of distributed system with high fault tolerance. It supports data set at the GB to the TB level, but lacks of support for the access to a large number of small files. The processing of large number of small files will make the NameNode memory consumption excessive, and result in a reduction of the file access performance. This paper presents a method of merging small files according to the file type. Through the establishment of an index information server to store the metadata of small files stored in the user files, the purpose of reading small files efficiently can be achieved. Experimental results show that the optimization strategy can effectively reduce the NameNode memory consumption, improve the reading efficiency of HDFS file system to a large number of small files.

Key words: HDFS; small file access; file type; user file; Metadata information

0 引言

隨著網絡和信息技術的不斷普及,人類產生的數據量正在呈指數級增長,大約每兩年翻一番,根據監測,這個速度在2020年之前會繼續保持下去,這意味著人類在最近兩年產生的數據量相當于之前產生的數據量總和。資料顯示,2011年,全球數據規模為1.8ZB,可以填滿575億個32GB的iPad,這些iPad可以在中國修建兩座長城。淘寶網網站每天有超過數千萬筆交易,單日產生數據量超過50TB,存儲量40PB(1PB等于1000TB)。百度公司存儲網頁數量接近1萬億頁,每天約處理60億次搜索請求,幾十PB數據[1]。云計算[2]已成為當今研究的熱門課題,它很好的解決了大數據運算與存儲的難題。HDFS是Apache Hadoop Core項目的一部分,現在已成為研究大數據,實現云存儲服務的一個很好的模型[3],它是一個不錯的分布式文件系統,大部分的HDFS程序對文件操作需要的是一次寫多次讀的操作模式[4]。它是一個主從結構,一個HDFS集群是由一個名字節點和多個數據節點組成,名字節點是一個管理文件命名空間和調節客戶端訪問文件的主服務器,數據節點用于存儲數據。HDFS采用的是流式讀取海量級數據,然而它在文件存儲方面也有不足。這是由于HDFS是由單一NameNode多DataNode組成的,在集群運行時 NameNode的內存中加載了命名空間的元數據信息,因此大量小文件的使用會造成節點的內存消耗過多從而使系統的性能降低[5]。

社交網絡、電商平臺以及其他大數據領域每天都會產生大量的數據文件。據統計分析,郵件、文本、音樂、視頻、互聯網檔案、網站圖片等小于1M的海量小文件會占據整個集群小文件總數的90%以上。根據美國國家能源研究科學計算中心一個關于共享并行文件系統的研究顯示,該系統存儲的1300萬個文件中,99%的文件大小不超過64MB,43%的文件大小不超過64KB[6]。由于HDFS是面向大文件存儲與訪問而設計的,面對這些大量小文件的存在,NameNode元數據的檢索效率就會降低。本文提出了一種根據文件類型分類的小文件的合并策略,通過將不同類型的小文件的元數據信息存放在用戶文件的不同位置,從而實現將小文件合并為大文件,很好的解決了HDFS存取海量小文件效率低下的問題。

1 研究現狀以及存在的問題及分析

1.1 HDFS基本架構

如圖1所示,HDFS是一個主/從(Mater/Slave)體系結構,HDFS集群擁有一個NameNode和多個DataNode。NameNode管理文件系統的元數據,DataNode存儲實際的數據??蛻舳送ㄟ^同NameNode和DataNodes的交互訪問文件系統??蛻舳寺撓礜ameNode以獲取文件的元數據,而真正的文件I/O操作是直接和DataNode進行交互的。

1.2 現有的小文件存取方案

HDFS能夠很好的支持大數據集的讀寫,提供很高的聚合帶寬,通常支持大數量級的文件(GB級別甚至更大的文件)[7],然而對小文件的支持卻有缺陷。主要原因在以下三個方面。

⑴ 由于HDFS文件系統命名空間中的元數據信息以及文件系統內部配置數據都存放在一個叫做FSImage的文件中,每次集群啟動時都會將這個文件加載到內存中,若小文件數量巨大就會造成節點的內存消耗過多。

⑵ HDFS文件系統默認每一個block的大小為64MB,存儲在DataNode中。大文件可能跨越多個數據塊,理想情況下除了最后一個數據塊會產生磁盤碎片,其余都會寫滿。小文件容量一般小于數據塊的容量,多個文件存儲在一個數據塊,當數據塊的碎片容量小于最小的文件大小時,這些空間將得不到利用,造成空間浪費。

⑶ 在頻繁的與客戶端交互過程中會形成大量的I/O操作,消耗在操作控制的時間遠大于傳輸時間,造成網絡通信延時高,從而使HDFS的性能下降。

Hadoop本身提供了一種將小文件進行歸檔的工具Hadoop Archives簡稱HAR Files,通過Hadoop的archive命令可以將大量小文件歸檔打包成一個HAR文件[8],因為訪問HAR中的小文件要進行兩次索引才能讀取到小文件。還有多NameNode架構,文件元數據信息存儲在多個NameNode節點上,需要采用映射文件來對NameNode進行映射,如果映射文件較大時也會嚴重影響系統的性能。現有的HDFS小文件解決方案都有著自身的不足。

2 基于文件合并策略的優化方案

合并小文件是為了減少NameNode內存消耗和提高其訪問性能。我們在集群中為每個用戶建立一個用戶文件UserFile,該文件分成不同的文件類型區域(Part1、Part2…),利用HDFS提供的Append文件追加操作以流的形式將我們前面所提到的這些類型的小文件合并到用戶文件的不同區域中,這樣在HDFS集群中所表現出來的就是相當于一個文件,有效降低了 NameNode 的內存消耗。

2.1 小文件的存儲結構設計

我們提出了小文件的合并策略,采取了如圖2的架構設計。HDFS應用服務器封裝了對HDFS中文件的基本操作,用戶直接訪問HDFS應用服務器就可以對HDFS集群中的文件進行操作,此外還有一個小文件索引信息服務器,這個服務器主要是針對優化小文件存儲用的。在進行小文件的合并時需要記錄小文件在UserFile中的偏移值和文件的大小,文件索引信息服務器存儲了小文件的相關元數據信息并為其建立索引,從而提高了小文件的存取效率。

2.2 小文件優化方案的實現

當客戶端上傳文件,發出上傳請求,根據文件的大小,HDFS執行不同的操作,對于大文件則直接上傳至HDFS文件系統中。設置小文件的閾值為1MB,如果文件的大小小于閾值,判斷小文件的類型,根據文件的類型將小文件以追加寫的方式寫到用戶文件的不同區域中。待小文件上傳完畢,我們將小文件的大小和偏移值記錄在小文件索引信息服務器上,以便用戶快速定位小文件,對小文件進行讀取。

當客戶端訪問文件時,發出讀取文件請求,先判斷文件大小,若是大文件就直接從HDFS集群中讀取文件。如果小于設定的文件閾值,根據文件名稱和文件類型派生出的一個哈希函數,此哈希函數H(key)的值均勻分布在哈希表中,哈希表將按文件類型分離許許多多的索引文件。哈希函數的作用是定位文件分類,找到文件索引,哈希代碼除以該類型小文件數得出一個值,根據這個值定位元數據文件中的index文件(類型文件),根據文件名稱從而定位到Part文件中文件實際位置,最后根據文件大小length以流式讀取文件。在實現的過程中,用到了一層索引,就定位到了小文件的實際位置[9]。由于小文件的數量龐大,用文件名稱和文件類型派生出的哈希函數檢索,效率會提升很多。根據文件類型對小文件進行一次篩選,大大縮小了檢索的范圍,能夠快速地定位小文件的位置,達到快速讀取小文件的目的。

3 實驗結果與分析

實驗的硬件環境:DFS服務器,小文件索引信息服務器,名稱節點,數據節點。

實驗的軟件環境:linux,Hadoop,JDK,Tomcat,Mysql。

我們用程序生成2000,5000,8000,10000,30000個不同類型的測試小文件,這些小文件的大小都是小于我們在前面設定的小文件閾值,平均大小為50KB。我們根據測試結果的平均值進行測試數據的對比,包括改進前和改進后的HDFS架構NameNode內存消耗以及寫入文件和讀取文件的效率比較。

實驗結果對比分析:由于改進后的HDFS架構的小文件元數據信息是存放在小文件索引服務器上,沒有存放到NameNode節點上,所以在集群啟動時,內存并不會隨著文件的增多而占用過多內存,如圖3所示。

從圖4可以發現,在小文件數量小的時候,改進后HDFS架構文件上傳時間會比改進前的時間長,這是由于改進架構后,對于小于文件閾值的小文件,我們根據文件類型的判斷,將文件以追加寫的方式寫到用戶文件的不同區域中,這樣會比改進前直接添加元數據信息和文件所需要的時間會長一些。隨著小文件的數量趨向龐大,由于改進的HDFS架構的NameNode的內存使用得到優化,使得文件寫入的性能有所提升,但是優化的性能不太明顯。

如圖5所示,改進后的HDFS架構,讀取文件的速度顯著提高。這是由于改進后的架構中小文件是從索引服務器讀取其元數據信息、偏移值,由構造的哈希函數所得值去定位用戶文件中的某個區域該小文件的具體位置,達到快速讀取小文件的目的。相比改進前的架構,遍歷NameNode索引,檢索效率大大提升。

4 結束語

本文闡述了基于文件類型分類的小文件存儲架構,針對HDFS分布式文件系統在處理大量小文件時存在空間資源浪費以及內存消耗嚴重的問題,提出了一種根據文件類型分類的小文件合并策略。將小于文件閾值的小文件根據文件類型合并到一起,存放在用戶文件中。通過哈希函數提出一種新的索引策略,定位文件類型索引號,再根據文件名稱定位文件位置。單層索引,可以將定位文件的位置最簡化,降低了檢索文件的索引時間。改進后的HDFS架構,有效利用了磁盤空間資源以及解決了大量小文件元數據信息在NameNode節點上,造成內存過度消耗的問題,提高了小文件的存取效率,優化了系統的整體性能。

在實際運行測試環境中,改進后的小文件存儲架構,能很好地解決空間資源浪費和內存過度消耗的問題,但同時也存在一些缺點和不足,比如在文件上傳時需按照文件類型分區域存儲在用戶文件中,這樣會花費HDFS一些時間。下一步將研究小文件寫入效率以及參數優化問題,小文件存儲架構也需要進一步的設計和探討。通過優化小文件存儲架構,內存利用率仍有可能加以改善。對此,我們將在后續的工作中進一步研究和完善。

參考文獻(References):

[1] 唐永建.“大數據”現狀及發展淺談[EB\OL].http://www.

zbeic.gov.cn/art/2013/12/9/art_2344_171250.html,2013.8.

[2] 劉鵬.云計算[M].電子工業出版社,2011.

[3] 張春明,芮建武,何婷婷.一種Hadoop小文件存儲和讀取的

方法[J].計算機應用與軟件,2012.11.

[4] 馬建紅,張海.基于HDFS的小文件存儲與讀取優化策略[J].

計算機系統應用,2014.5.

[5] 陳光景.Hadoop小文件處理技術的研究與實現[D].南京郵電

大學,2013.3.

[6] 周國安,李強,陳新,胡旭.云環境下海量小文件存儲技術研究

綜述[J].信息網絡安全,2014.6.

[7] 陳劍,龔發根.一種優化分布式文件系統的文件合并策略[J].

計算機應用,2011.12.

[8] 蔡睿誠.基于HDFS的小文件處理與相關MapReduce計算

模型性能的優化與改進[D].吉林大學,2012.4.

[9] 左大鵬,徐薇.基于Hadoop處理小文件的優化策略[J].

SOFTWARE,2015.2.

主站蜘蛛池模板: 国产视频自拍一区| 97超级碰碰碰碰精品| 性色一区| 呦女精品网站| 91无码网站| 一级毛片a女人刺激视频免费| 国产欧美视频在线| 亚洲午夜福利在线| 欧美亚洲日韩不卡在线在线观看| 国产精品夜夜嗨视频免费视频| 免费视频在线2021入口| 国产av剧情无码精品色午夜| 91无码国产视频| 午夜性刺激在线观看免费| 亚洲av无码人妻| 欧美高清国产| 色婷婷色丁香| 国产成人综合亚洲欧洲色就色| a级毛片一区二区免费视频| 亚洲国产成人超福利久久精品| a级毛片免费看| 国模私拍一区二区三区| 亚洲中文字幕精品| 在线观看亚洲天堂| 亚洲精品自产拍在线观看APP| 久久精品女人天堂aaa| 久久一级电影| 18禁不卡免费网站| 久久一级电影| 亚洲精品无码AV电影在线播放| 午夜电影在线观看国产1区| 婷婷亚洲视频| 青青草国产精品久久久久| 91小视频在线播放| 国产精品手机视频| 蜜桃视频一区二区三区| 一本大道东京热无码av| 亚洲日韩Av中文字幕无码| 国产乱人视频免费观看| 国产va在线观看免费| 天天躁夜夜躁狠狠躁图片| 日韩在线第三页| 国产不卡一级毛片视频| 国产成人在线无码免费视频| 久久精品丝袜高跟鞋| 精品久久久无码专区中文字幕| 刘亦菲一区二区在线观看| 天天综合天天综合| 极品私人尤物在线精品首页| 国产亚洲第一页| 国产福利免费在线观看| 伊人91在线| 国产一级二级在线观看| 亚洲一区二区在线无码| 在线看片国产| 亚洲一区二区无码视频| 国产精品福利一区二区久久| 亚洲国产日韩欧美在线| 国内精品久久人妻无码大片高| 91探花在线观看国产最新| 在线看片免费人成视久网下载| 精品国产美女福到在线不卡f| 亚洲精品在线91| 亚洲人成网站在线播放2019| a级毛片在线免费| 国产第一页亚洲| 国产精品毛片一区| 天天色天天综合网| A级毛片高清免费视频就| 亚洲人成亚洲精品| 亚洲成a人片77777在线播放| 中文字幕中文字字幕码一二区| 亚洲成人黄色在线| 欧美国产另类| 日韩国产无码一区| 免费激情网站| 国产精品综合久久久| 夜夜爽免费视频| 国产免费福利网站| 黄色网在线免费观看| 男女性色大片免费网站| 全免费a级毛片免费看不卡|