• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

      1 概述

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

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

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

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

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

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

      3 namenode

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

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

      1) 備份機(jī)制。

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

      2) 輔助namenode

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

      4 高可用性

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

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

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

      2) datanode向兩個(gè)namenode同時(shí)發(fā)送報(bào)告。

      3) 客戶端用特定的透明機(jī)制處理namenode的失效問(wèn)題。

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

      5 結(jié)束語(yǔ)

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

      參考文獻(xiàn):

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

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

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

      通州市| 泰兴市| 保亭| 黄骅市| 塔河县| 什邡市| 徐闻县| 双鸭山市| 锡林浩特市| 汝州市| 潮安县| 电白县| 芜湖市| 雷州市| 湖南省| 刚察县| 元阳县| 泸溪县| 桐乡市| 石家庄市| 报价| 泰安市| 贵港市| 姚安县| 依兰县| 福海县| 梅河口市| 乡宁县| 陈巴尔虎旗| 长春市| 改则县| 岳西县| 康乐县| 荆门市| 海淀区| 汨罗市| 通州区| 滦平县| 孝义市| 项城市| 泽库县|