這篇文章將為大家詳細講解有關Hadoop體系結(jié)構(gòu)之HDFS的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)于2013年成立,先為珙縣等服務建站,珙縣等地企業(yè),進行企業(yè)商務咨詢服務。為珙縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
HDFS采用主從(Master/Slave)結(jié)構(gòu)模型,一個HDFS集群是由一個NameNode和若干個DataNode組成的(在最新的Hadoop2.2版本已經(jīng)實現(xiàn)多個NameNode的配置-這也是一些大公司通過修改hadoop源代碼實現(xiàn)的功能,在最新的版本中就已經(jīng)實現(xiàn)了)。NameNode作為主服務器,管理文件系統(tǒng)命名空間和客戶端對文件的訪問操作。DataNode管理存儲的數(shù)據(jù)。HDFS支持文件形式的數(shù)據(jù)。
從內(nèi)部來看,文件被分成若干個數(shù)據(jù)塊,這若干個數(shù)據(jù)塊存放在一組DataNode上。NameNode執(zhí)行文件系統(tǒng)的命名空間,如打開、關閉、重命名文件或目錄等,也負責數(shù)據(jù)塊到具體DataNode的映射。DataNode負責處理文件系統(tǒng)客戶端的文件讀寫,并在NameNode的統(tǒng)一調(diào)度下進行數(shù)據(jù)庫的創(chuàng)建、刪除和復制工作。NameNode是所有HDFS元數(shù)據(jù)的管理者,用戶數(shù)據(jù)永遠不會經(jīng)過NameNode。
如圖:HDFS體系結(jié)構(gòu)圖
說明:
圖中涉及三個角色:NameNode、DataNode、Client。NameNode是管理者,DataNode是文件存儲者、Client是需要獲取分布式文件系統(tǒng)的應用程序。
namenode負責: 接收用戶操作請求 維護文件系統(tǒng)的目錄結(jié)構(gòu) 管理文件與block之間關系,block與datanode之間關系
datanode負責: 存儲文件 文件被分成block存儲在磁盤上 為保證數(shù)據(jù)安全,文件會有多個副本
數(shù)據(jù)寫入:
1) Client向NameNode發(fā)起文件寫入的請求。
2) NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它管理的DataNode的信息。
3) Client將文件劃分為多個block,根據(jù)DataNode的地址,按順序?qū)lock寫入DataNode塊中。
數(shù)據(jù)讀?。?/strong>
1) Client向NameNode發(fā)起讀取文件的請求。
2) NameNode返回文件存儲的DataNode信息。
3) Client讀取文件信息。
數(shù)據(jù)讀取策略,根據(jù)前面所說的數(shù)據(jù)存放策略,數(shù)據(jù)讀取的時候,客戶端也有 api 確定自己的機柜 id,讀取的時候,如果
有塊數(shù)據(jù)和客戶端的機柜 id 一樣,就優(yōu)先選擇該數(shù)據(jù)節(jié)點,客戶端直接和數(shù)據(jù)節(jié)點建立連接,讀取數(shù)據(jù)。如果沒有,就隨機選
取一個數(shù)據(jù)節(jié)點。
數(shù)據(jù)復制:
主要是在數(shù)據(jù)寫入和數(shù)據(jù)恢復的時候發(fā)生,數(shù)據(jù)復制是使用流水線復制的策略。當客戶端要在 hadoop 上面寫一個文件,
首先它先把這個文件寫在本地,然后對文件進行分塊,默認 64m 一塊,每塊數(shù)據(jù)都對 hadoop 目錄服務器請求,目錄服務器選
擇一個數(shù)據(jù)機列表,返回給客戶端,然后客戶端就把數(shù)據(jù)寫入第一臺數(shù)據(jù)機,并且把列表傳給數(shù)據(jù)機,當數(shù)據(jù)機接收到 4k 數(shù)據(jù)
的時候,寫入本地并且發(fā)起連接到下一臺數(shù)據(jù)機,把這個 4k 傳過去,形成一條流水線。當最后文件寫完的時候,數(shù)據(jù)復制也同
時完成,這個就是流水線處理的優(yōu)勢。
HDFS作為分布式文件系統(tǒng)在數(shù)據(jù)管理方面可借鑒點:
文件塊的放置:一個Block會有三份備份,一份在NameNode指定的DateNode上,一份放在與指定的DataNode不在同一臺機器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。簡單來說就是 1/3 的冗余數(shù)據(jù)在一個機柜里面,2/3 的冗余數(shù)據(jù)在另外一個機柜里面。備份的目的是為了數(shù)據(jù)安全,采用這種方式是為了考慮到同一Rack失敗的情況,以及不同數(shù)據(jù)拷貝帶來的性能的問題。
HDFS的設計特點:
1、大數(shù)據(jù)文件,非常適合上T級別的大文件或者一堆大數(shù)據(jù)文件的存儲,如果文件只有幾個G甚至更小就沒啥意思了。
2、文件分塊存儲,HDFS會將一個完整的大文件平均分塊存儲到不同計算器上,它的意義在于讀取文件時可以同時從多個主機取不同區(qū)塊的文件,多主機讀取比單主機讀取效率要高得多得都。
3、流式數(shù)據(jù)訪問,一次寫入多次讀寫,這種模式跟傳統(tǒng)文件不同,它不支持動態(tài)改變文件內(nèi)容,而是要求讓文件一次寫入就不做變化,要變化也只能在文件末添加內(nèi)容。
4、廉價硬件,HDFS可以應用在普通PC機上,這種機制能夠讓給一些公司用幾十臺廉價的計算機就可以撐起一個大數(shù)據(jù)集群。
5、硬件故障,HDFS認為所有計算機都可能會出問題,為了防止某個主機失效讀取不到該主機的塊文件,它將同一個文件塊副本分配到其它某幾個主機上,如果其中一臺主機失效,可以迅速找另一塊副本取文件。
HDFS的關鍵元素:
Block:將一個文件進行分塊,通常是64M。
NameNode:保存整個文件系統(tǒng)的目錄信息、文件信息及分塊信息,這是由唯一一臺主機專門保存,當然這臺主機如果出錯,NameNode就失效了。在Hadoop2.*開始支持activity-standy模式----如果主NameNode失效,啟動備用主機運行NameNode。
DataNode:分布在廉價的計算機上,用于存儲Block塊文件。
補充:HDFS和MR共同組成Hadoop分布式系統(tǒng)體系結(jié)構(gòu)的核心。HDFS在集群上實現(xiàn)了分布式文件系統(tǒng),MR在集群上實現(xiàn)了分布式計算和任務處理。HDFS在MR任務處理過程中提供了文件操作和存儲等支持,MR在HDFS的基礎上實現(xiàn)了任務的分發(fā)、跟蹤、執(zhí)行等工作,并收集結(jié)果,二者相互作用,完成分布式集群的主要任務。
關于“Hadoop體系結(jié)構(gòu)之HDFS的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章名稱:Hadoop體系結(jié)構(gòu)之HDFS的示例分析
本文URL:http://jinyejixie.com/article32/gdjesc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站營銷、品牌網(wǎng)站建設、手機網(wǎng)站建設、云服務器、網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)