HDFS 為何在大數(shù)據(jù)領域經(jīng)久不衰?
1 概述
1.1 簡介
Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS 源自于Google的GFS論文,發(fā)表于2003年,HDFS是GFS的克隆版
1.2 設計目標
filel:node1 node2 node3file2: node2 node3 node4file3: node3 node4 node5file4: node5 node6 node7
不管文件多大,都存儲在一個節(jié)點,在進行數(shù)據(jù)處理時,很難進行并行處理,節(jié)點可能就成為網(wǎng)絡瓶頸,很難進行大數(shù)據(jù)的處理 存儲負載很難均衡,每個節(jié)點的利用率很低
巨大的分布式文件系統(tǒng) 運行在普通廉價的硬件 易擴展、為用戶提供性能不錯的文件存儲服務
2 如何設計一個分布式文件系統(tǒng)
NameNode用于管理文件系統(tǒng)的命名空間以及調(diào)節(jié)客戶訪問文件 還有多個DataNode(簡稱DN),數(shù)據(jù)節(jié)點,作為從節(jié)點(slave server)存在 通常每個集群中的DataNode,都會被NameNode所管理,DataNode用于存儲數(shù)據(jù)
NameNode,而其他集群中的機器各自運行一個DataNode實例。雖然一臺機器上也可以運行多個節(jié)點,但不推薦。

DataNode
存儲用戶的文件對應的數(shù)據(jù)塊(Block) 會定期向NN發(fā)送心跳信息,匯報本身及其所有的block信息和健康狀況
NameNode
負責客戶端請求的響應 負責元數(shù)據(jù)(文件的名稱、副本系數(shù)、Block存放的DN)的管理
3 S副本機制

Block多份復制存儲的示意圖
Block1的兩個備份存儲在DataNode0和DataNode2兩個服務器上 Block3的兩個備份存儲DataNode4和DataNode6兩個服務器上

副本存放策略
第一個副本會隨機選擇,但是不會選擇存儲過滿的節(jié)點 第二個副本放在和第一個副本不同且隨機選擇的機架 第三個和第二個放在同一機架上的不同節(jié)點 剩余副本完全隨機節(jié)點

合理性分析
可靠性:block存儲在兩個機架 寫帶寬:寫操作僅穿過一個網(wǎng)絡交換機 讀操作:選擇其中一個機架去讀 block分布在整個集群
5 HDFS的高可用設計
5.1 數(shù)據(jù)存儲故障容錯
5.2 磁盤故障容錯
5.3 DataNode故障容錯
5.4 NameNode故障容錯

一臺作為主服務器提供服務 一臺作為從服務器進行熱備
6 保證系統(tǒng)可用性的策略
冗余備份
失效轉移
降級
總結
評論
圖片
表情
