国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關(guān)于Hadoop中HDFS的研究

2018-02-02 18:07劉涌裴春梅韓偉高震宇
電腦知識與技術(shù) 2018年1期

劉涌+裴春梅+韓偉+高震宇

摘要:Hadoop的文件系統(tǒng)HDFS(Hadoop Disttributed Filesystem)是一種分布式文件系統(tǒng),它利用多個商用硬件構(gòu)成存儲集群,利用namenode進行數(shù)據(jù)的存儲控制,具有支持超大文件、存儲靈活、可靠性高等特點,在面對大量數(shù)據(jù)存儲的時候,能夠高效地工作,但在處理大量小數(shù)據(jù)時、需要進行低延遲數(shù)據(jù)訪問時和需要多用戶訪問寫入時仍存在一定的不足。總之,HDFS技術(shù)在市場潛力巨大的同時,還存在很多可以改善討論的地方,具有較高的研究價值。

關(guān)鍵詞:Hadoop;HDFS;block;namenode

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)01-0007-02

1 概述

隨著人們工作生活中數(shù)據(jù)量的不斷加大,個人電腦中單機存儲的體積也在不斷增大,與之相對應(yīng)的,數(shù)據(jù)中心的數(shù)據(jù)壓力也在成倍增長;要存儲這些超大文件,可以對數(shù)據(jù)進行分區(qū)并存儲到網(wǎng)絡(luò)中若干單獨的計算機上,管理網(wǎng)絡(luò)中多臺計算機存儲的文件系統(tǒng)稱為分布式文件系統(tǒng)(Distributed Filesystem)。Hadoop的分布式系統(tǒng)稱為HDFS,即Hadoop Distributed Filesystem。

HDFS以流式數(shù)據(jù)訪問模式來存儲超大文件,即一次寫入,多次讀取的方式存取數(shù)據(jù)最佳:數(shù)據(jù)集通常由數(shù)據(jù)源生成或復(fù)制而成,接著長時間在此數(shù)據(jù)集上進行各種分析,這個數(shù)據(jù)源的寫入總是僅在文件的末尾添加數(shù)據(jù),不支持多源寫入(以目前的技術(shù),即使實現(xiàn)任意位置寫入等功能,效率也比較低)。Hadoop是設(shè)計運行在民用硬件(普通家用電腦)的集群上的,因此節(jié)點的故障率相對于昂貴的專用硬件較高,HDFS的作用就是當(dāng)節(jié)點發(fā)生故障時,讓一般用戶察覺不到明顯的中斷。

2 HDFS數(shù)據(jù)塊

數(shù)據(jù)塊(block)是磁盤讀寫數(shù)據(jù)的最小單位,文件系統(tǒng)通過格式化硬盤,構(gòu)造特有的磁盤塊來管理磁盤存儲,通常文件系統(tǒng)塊為幾k字節(jié)(Byte),而磁盤塊為512字節(jié),常見的Windows服務(wù)器必須安裝在NTFS文件系統(tǒng)上,就是因為盡在這種文件系統(tǒng)上才支持服務(wù)器對磁盤的管理。HDFS也有塊的概念,默認為64MB,與常規(guī)文件系統(tǒng)類似,HDFS也將多個塊組合作為獨立的存儲單元(chunk),不同的是,當(dāng)存儲文件小于塊大小時,不會獨占整個塊存儲空間。

之所以HDFS中的塊要大一些,是為了節(jié)省尋址開銷:眾所周知,在單機上頻繁進行硬盤讀寫操作后,容易產(chǎn)生磁盤存儲碎片,進而降低計算機整體運算速度,磁盤碎片整理的過程,其實質(zhì)是將散亂存儲的數(shù)據(jù),整理到磁盤相對集中的區(qū)域,從而減少磁頭尋址時間;同樣的,當(dāng)單位數(shù)據(jù)塊較大時,磁盤讀取數(shù)據(jù)的效率也會明顯提高。假設(shè)尋址時間固定為10ms,傳輸速率為100MB/s,為了使尋址時間占傳輸時間的1%,應(yīng)將塊大小設(shè)置為100MB,即1s內(nèi),首先用1/100s尋址,之后開始傳輸,由于數(shù)據(jù)塊有100MB,因此在傳輸完畢前無需再次尋址,這樣,就實現(xiàn)了1:100的高效傳輸,而通常情況下,HDFS也是使用128MB的塊設(shè)置。當(dāng)然,塊的大小也不是越大越好,MapReduce中map任務(wù)每次只調(diào)用一個塊進行處理,當(dāng)map任務(wù)數(shù)小于節(jié)點數(shù)量時,會造成大量節(jié)點閑置,反而降低了整體的處理速度。

利用這樣的塊結(jié)構(gòu),HDFS允許文件的大小大于網(wǎng)絡(luò)中任意一個磁盤的空間,因為文件的所有塊并不需要保存在一個磁盤上;其次,這樣的設(shè)計也使得存儲管理變得更加容易,由于單位塊的大小是固定的,文件管理系統(tǒng)很容易計算磁盤能夠容納多少塊,同時,每個塊只存儲一部分數(shù)據(jù),而諸如文件權(quán)限等信息不需要與塊一同存儲,這樣,系統(tǒng)就能夠單獨管理這些信息;在容錯性方面,塊結(jié)構(gòu)能夠有效實現(xiàn)數(shù)據(jù)的備份,HDFS默認將每個塊復(fù)制到三臺獨立的設(shè)備上,確保在設(shè)備發(fā)生故障,導(dǎo)致某個塊不可用時,從其他設(shè)備讀取其副本,保證數(shù)據(jù)的完整性。

3 namenode

HDFS中存在一個namenode(管理者)和多個datanode(工作者),其中namenode負責(zé)管理文件系統(tǒng)的命名,記錄所有文件和目錄,即永久存在于磁盤的命名空間鏡像文件和編輯日志文件,同時,它還負責(zé)臨時保存塊的位置信息??蛻敉ㄟ^文件系統(tǒng)接口訪問數(shù)據(jù),其實質(zhì)是在與namenode和datanode進行交互。

Datanode是文件系統(tǒng)的工作節(jié)點,它就像是人們的末梢神經(jīng)一樣,為各項感知提供數(shù)據(jù),而namenode就好像是人們的大腦,對神經(jīng)的反饋進行綜合處理:datanode根據(jù)需要存儲并檢索數(shù)據(jù)庫,定期向namenode發(fā)送存儲塊的列表,而namenode負責(zé)記錄如何重建文件。namenode一旦損壞,整個文件系統(tǒng)將癱瘓,Hadoop為此提供兩種容錯機制:

1) 備份機制。

備份組成文件系統(tǒng)元數(shù)據(jù)持久狀態(tài)的文件:Hadoop可以同步將持久狀態(tài)寫入本地磁盤的同時,寫入一個遠程的網(wǎng)絡(luò)文件系統(tǒng)(NFS)

2) 輔助namenode

在另一臺單獨的計算機上運行一個輔助namenode,定期編輯日志合并命名空間鏡像,以防止編輯日志過大,它需要消耗與namenode同等的CPU和內(nèi)存資源進行合并操作,并保存合并后的命名空間鏡像副本。

4 高可用性

通過以上兩種方法,依舊無法實現(xiàn)HDFS的高可用性,因為namenode是唯一存儲元數(shù)據(jù)與文件到數(shù)據(jù)塊映射的單元,當(dāng)namenode失效時,所有客戶端均無法實現(xiàn)讀寫等操作。直到管理員建立一個新的namenode,并將命名空間的映像倒入內(nèi)存,重新編輯日志,收到大量的來自datanode的數(shù)據(jù)塊報告并退出安全模式后,系統(tǒng)才能夠恢復(fù),而對于大型數(shù)據(jù)集群來說,這種冷啟動需要30分鐘甚至更長的時間。

實際工作中,namenode失效的可能性非常低,Hadoop的2.X發(fā)行版本針對上述問題也在HDFS增加了對高可用性(HA)的支持,并做了如下修改:

1) namenode之間通過高可用的共享存儲實現(xiàn)編輯日志的共享,當(dāng)備用namenode接管之后,將共享全部編輯日志,以實現(xiàn)與活動的namenode同步,并繼續(xù)讀取活動中的namenode的最新信息。

2) datanode向兩個namenode同時發(fā)送報告。

3) 客戶端用特定的透明機制處理namenode的失效問題。

由于最新的編輯日志和數(shù)據(jù)塊映射信息在內(nèi)存條內(nèi),在活動的namenode失效后,備用namenode能夠在幾十秒內(nèi)實現(xiàn)任務(wù)接管,實際過程中,為了等待系統(tǒng)確定namenode是否真的失效,失效時間大約在1分鐘左右。

5 結(jié)束語

HDFS(Hadoop Disttributed Filesystem)的以上種種表明,這是一種行之有效的大數(shù)據(jù)文件存儲系統(tǒng),符合大數(shù)據(jù)的基本存儲需求,能夠?qū)崿F(xiàn)數(shù)據(jù)的負載均衡存儲、存儲方法方便簡潔、可用性高、容錯性強。目前HDFS還存在包括上文所述在內(nèi)的一些問題,部分問題解決的意義不大,部分問題仍需討論,但在可見的未來內(nèi),HDFS將持續(xù)保持自己的活力,并更加得到市場的認可。

參考文獻:

[1] 張子凡. OpenStack部署實踐[M].北京:人民郵電出版社,2014:1-364.

[2] 鮑亮,李倩. 實戰(zhàn)大數(shù)據(jù)[M].北京:清華大學(xué)出版社,2014:1-327.

[3] 吳萍,朱晴婷. 算法與程序設(shè)計基礎(chǔ)(Python版)[M].北京:清華大學(xué)出版社,2015:30-270.endprint

叙永县| 华蓥市| 深泽县| 大名县| 弥勒县| 丹阳市| 车致| 宜丰县| 侯马市| 浦北县| 石泉县| 朝阳县| 驻马店市| 青阳县| 赤壁市| 云阳县| 道孚县| 贡觉县| 江孜县| 稻城县| 湘乡市| 莱州市| 南汇区| 平顺县| 波密县| 秭归县| 土默特左旗| 德格县| 北宁市| 蓝山县| 康平县| 霍城县| 彭山县| 江达县| 泰州市| 鹤山市| 彰化市| 龙岩市| 元氏县| 石嘴山市| 霸州市|