1. 程式人生 > >【漫畫解讀】HDFS儲存原理

【漫畫解讀】HDFS儲存原理

根據Maneesh Varshney的漫畫改編,以簡潔易懂的漫畫形式講解HDFS儲存機制與執行原理。

一、角色出演

角色
如上圖所示,HDFS儲存相關角色與功能如下:

Client:客戶端,系統使用者,呼叫HDFS API操作檔案;與NN互動獲取檔案元資料;與DN互動進行資料讀寫。

Namenode:元資料節點,是系統唯一的管理者。負責元資料的管理;與client互動進行提供元資料查詢;分配資料儲存節點等。

Datanode:資料儲存節點,負責資料塊的儲存與冗餘備份;執行資料塊的讀寫操作等。

二、寫入資料

1、傳送寫資料請求

傳送寫資料請求
HDFS中的儲存單元是block。檔案通常被分成64或128M一塊的資料塊進行儲存。與普通檔案系統不同的是,在HDFS中,如果一個檔案大小小於一個數據塊的大小,它是不需要佔用整個資料塊的儲存空間的。

2、檔案切分

檔案切割
3、DN分配
DN分配1DN分配2
4、資料寫入
資料寫入1資料寫入2
5、完成寫入
完成寫入1完成寫入2完成寫入3
6、角色定位
角色定位

三、HDFS讀檔案

1、使用者需求

使用者需求
HDFS採用的是“一次寫入多次讀取”的檔案訪問模型。一個檔案經過建立、寫入和關閉之後就不需要改變。這一假設簡化了資料一致性問題,並且使高吞吐量的資料訪問成為可能。

2、先聯絡元資料節點

聯絡元資料節點1聯絡元資料節點2聯絡元資料節點2
3、下載資料
下載資料
前文提到在寫資料過程中,資料儲存已經按照客戶端與DataNode節點之間的距離進行了排序,距客戶端越近的DataNode節點被放在最前面,客戶端會優先從本地讀取該資料塊。

4、思考

思考

四、HDFS容錯機制——第一部分:故障型別及監測方法

1、三類故障

(1)第一類:節點失敗

節點失敗
(2)第二類:網路故障
網路故障
(3)第三類:資料損壞(髒資料)
資料損壞
2、故障監測機制

(1)節點失敗監測機制

節點失敗檢測機制1節點失敗檢測機制2節點失敗檢測機制3
(2)通訊故障監測機制
通訊故障檢測機制
(3)資料錯誤監測機制

資料錯誤檢測機制1資料錯誤檢測機制2資料錯誤檢測機制3
3、回顧:心跳資訊與資料塊報告
回顧:心跳資訊與資料塊報告
HDFS儲存理念是以最少的錢買最爛的機器並實現最安全、難度高的分散式檔案系統(高容錯性低成本),從上可以看出,HDFS認為機器故障是種常態,所以在設計時充分考慮到單個機器故障,單個磁碟故障,單個檔案丟失等情況。

五、容錯第二部分:讀寫容錯

1、寫容錯

寫容錯1寫容錯2寫容錯3寫容錯4
2、讀容錯
讀容錯讀容錯2

六、容錯第三部分:資料節點(DN)失效

資料節點(DN)失效1資料節點(DN)失效2資料節點(DN)失效3資料節點(DN)失效4資料節點(DN)失效5資料節點(DN)失效6

七、備份規則

備份規則
1、機架與資料節點
1、機架與資料節點
2、副本放置策略
2、副本放置策略
資料塊的第一個副本優先放在寫入資料塊的客戶端所在的節點上,但是如果這個客戶端上的資料節點空間不足或者是當前負載過重,則應該從該資料節點所在的機架中選擇一個合適的資料節點作為本地節點。

如果客戶端上沒有一個數據節點的話,則從整個叢集中隨機選擇一個合適的資料節點作為此時這個資料塊的本地節點。

數字節點放置
HDFS的存放策略是將一個副本存放在本地機架節點上,另外兩個副本放在不同機架的不同節點上。

這樣叢集可在完全失去某一機架的情況下還能存活。同時,這種策略減少了機架間的資料傳輸,提高了寫操作的效率,因為資料塊只存放在兩個不同的機架上,減少了讀取資料時需要的網路傳輸總頻寬。這樣在一定程度上兼顧了資料安全和網路傳輸的開銷。

DN節點選取細則via:京東大資料                                                                                                                                        
End.