Hadoop體系結(jié)構(gòu)之HDFS的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Hadoop體系結(jié)構(gòu)之HDFS的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站主營汕尾網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),汕尾h5微信小程序開發(fā)搭建,汕尾網(wǎng)站營銷推廣歡迎汕尾等地區(qū)企業(yè)咨詢

    HDFS采用主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群是由一個(gè)NameNode和若干個(gè)DataNode組成的(在最新的Hadoop2.2版本已經(jīng)實(shí)現(xiàn)多個(gè)NameNode的配置-這也是一些大公司通過修改hadoop源代碼實(shí)現(xiàn)的功能,在最新的版本中就已經(jīng)實(shí)現(xiàn)了)。NameNode作為主服務(wù)器,管理文件系統(tǒng)命名空間和客戶端對(duì)文件的訪問操作。DataNode管理存儲(chǔ)的數(shù)據(jù)。HDFS支持文件形式的數(shù)據(jù)。

從內(nèi)部來看,文件被分成若干個(gè)數(shù)據(jù)塊,這若干個(gè)數(shù)據(jù)塊存放在一組DataNode上。NameNode執(zhí)行文件系統(tǒng)的命名空間,如打開、關(guān)閉、重命名文件或目錄等,也負(fù)責(zé)數(shù)據(jù)塊到具體DataNode的映射。DataNode負(fù)責(zé)處理文件系統(tǒng)客戶端的文件讀寫,并在NameNode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)庫的創(chuàng)建、刪除和復(fù)制工作。NameNode是所有HDFS元數(shù)據(jù)的管理者,用戶數(shù)據(jù)永遠(yuǎn)不會(huì)經(jīng)過NameNode。

如圖:HDFS體系結(jié)構(gòu)圖

說明:

圖中涉及三個(gè)角色:NameNode、DataNode、Client。NameNode是管理者,DataNode是文件存儲(chǔ)者、Client是需要獲取分布式文件系統(tǒng)的應(yīng)用程序。

namenode負(fù)責(zé): 接收用戶操作請(qǐng)求 維護(hù)文件系統(tǒng)的目錄結(jié)構(gòu) 管理文件與block之間關(guān)系,block與datanode之間關(guān)系

datanode負(fù)責(zé): 存儲(chǔ)文件 文件被分成block存儲(chǔ)在磁盤上 為保證數(shù)據(jù)安全,文件會(huì)有多個(gè)副本

數(shù)據(jù)寫入:

   1)  Client向NameNode發(fā)起文件寫入的請(qǐng)求。

   2)  NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它管理的DataNode的信息。

   3)  Client將文件劃分為多個(gè)block,根據(jù)DataNode的地址,按順序?qū)lock寫入DataNode塊中。

數(shù)據(jù)讀?。?/strong>

   1)  Client向NameNode發(fā)起讀取文件的請(qǐng)求。

   2)  NameNode返回文件存儲(chǔ)的DataNode信息。

   3)  Client讀取文件信息。

    數(shù)據(jù)讀取策略,根據(jù)前面所說的數(shù)據(jù)存放策略,數(shù)據(jù)讀取的時(shí)候,客戶端也有 api 確定自己的機(jī)柜 id,讀取的時(shí)候,如果
有塊數(shù)據(jù)和客戶端的機(jī)柜 id 一樣,就優(yōu)先選擇該數(shù)據(jù)節(jié)點(diǎn),客戶端直接和數(shù)據(jù)節(jié)點(diǎn)建立連接,讀取數(shù)據(jù)。如果沒有,就隨機(jī)選
取一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

數(shù)據(jù)復(fù)制:

       主要是在數(shù)據(jù)寫入和數(shù)據(jù)恢復(fù)的時(shí)候發(fā)生,數(shù)據(jù)復(fù)制是使用流水線復(fù)制的策略。當(dāng)客戶端要在 hadoop 上面寫一個(gè)文件,
首先它先把這個(gè)文件寫在本地,然后對(duì)文件進(jìn)行分塊,默認(rèn) 64m 一塊,每塊數(shù)據(jù)都對(duì) hadoop 目錄服務(wù)器請(qǐng)求,目錄服務(wù)器選
擇一個(gè)數(shù)據(jù)機(jī)列表,返回給客戶端,然后客戶端就把數(shù)據(jù)寫入第一臺(tái)數(shù)據(jù)機(jī),并且把列表傳給數(shù)據(jù)機(jī),當(dāng)數(shù)據(jù)機(jī)接收到 4k 數(shù)據(jù)
的時(shí)候,寫入本地并且發(fā)起連接到下一臺(tái)數(shù)據(jù)機(jī),把這個(gè) 4k 傳過去,形成一條流水線。當(dāng)最后文件寫完的時(shí)候,數(shù)據(jù)復(fù)制也同
時(shí)完成,這個(gè)就是流水線處理的優(yōu)勢。

      HDFS作為分布式文件系統(tǒng)在數(shù)據(jù)管理方面可借鑒點(diǎn):

文件塊的放置:一個(gè)Block會(huì)有三份備份,一份在NameNode指定的DateNode上,一份放在與指定的DataNode不在同一臺(tái)機(jī)器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。簡單來說就是 1/3 的冗余數(shù)據(jù)在一個(gè)機(jī)柜里面,2/3 的冗余數(shù)據(jù)在另外一個(gè)機(jī)柜里面。備份的目的是為了數(shù)據(jù)安全,采用這種方式是為了考慮到同一Rack失敗的情況,以及不同數(shù)據(jù)拷貝帶來的性能的問題。

HDFS的設(shè)計(jì)特點(diǎn):

1、大數(shù)據(jù)文件,非常適合上T級(jí)別的大文件或者一堆大數(shù)據(jù)文件的存儲(chǔ),如果文件只有幾個(gè)G甚至更小就沒啥意思了。

2、文件分塊存儲(chǔ),HDFS會(huì)將一個(gè)完整的大文件平均分塊存儲(chǔ)到不同計(jì)算器上,它的意義在于讀取文件時(shí)可以同時(shí)從多個(gè)主機(jī)取不同區(qū)塊的文件,多主機(jī)讀取比單主機(jī)讀取效率要高得多得都。

3、流式數(shù)據(jù)訪問,一次寫入多次讀寫,這種模式跟傳統(tǒng)文件不同,它不支持動(dòng)態(tài)改變文件內(nèi)容,而是要求讓文件一次寫入就不做變化,要變化也只能在文件末添加內(nèi)容。

4、廉價(jià)硬件,HDFS可以應(yīng)用在普通PC機(jī)上,這種機(jī)制能夠讓給一些公司用幾十臺(tái)廉價(jià)的計(jì)算機(jī)就可以撐起一個(gè)大數(shù)據(jù)集群。

5、硬件故障,HDFS認(rèn)為所有計(jì)算機(jī)都可能會(huì)出問題,為了防止某個(gè)主機(jī)失效讀取不到該主機(jī)的塊文件,它將同一個(gè)文件塊副本分配到其它某幾個(gè)主機(jī)上,如果其中一臺(tái)主機(jī)失效,可以迅速找另一塊副本取文件。

HDFS的關(guān)鍵元素:

Block:將一個(gè)文件進(jìn)行分塊,通常是64M。

NameNode:保存整個(gè)文件系統(tǒng)的目錄信息、文件信息及分塊信息,這是由唯一一臺(tái)主機(jī)專門保存,當(dāng)然這臺(tái)主機(jī)如果出錯(cuò),NameNode就失效了。在Hadoop2.*開始支持activity-standy模式----如果主NameNode失效,啟動(dòng)備用主機(jī)運(yùn)行NameNode。

DataNode:分布在廉價(jià)的計(jì)算機(jī)上,用于存儲(chǔ)Block塊文件。

補(bǔ)充:HDFS和MR共同組成Hadoop分布式系統(tǒng)體系結(jié)構(gòu)的核心。HDFS在集群上實(shí)現(xiàn)了分布式文件系統(tǒng),MR在集群上實(shí)現(xiàn)了分布式計(jì)算和任務(wù)處理。HDFS在MR任務(wù)處理過程中提供了文件操作和存儲(chǔ)等支持,MR在HDFS的基礎(chǔ)上實(shí)現(xiàn)了任務(wù)的分發(fā)、跟蹤、執(zhí)行等工作,并收集結(jié)果,二者相互作用,完成分布式集群的主要任務(wù)。

關(guān)于“Hadoop體系結(jié)構(gòu)之HDFS的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

標(biāo)題名稱:Hadoop體系結(jié)構(gòu)之HDFS的示例分析-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article4/cddeoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、建站公司ChatGPT、定制網(wǎng)站關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)