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