HDFS分布式文件系统设计思想
?
?
?
HDFS設計目標
1)硬件錯誤是常態,數據保存需要冗余。
2)數據批量讀取,Hadoop擅長數據分析而不是事務處理。
3)大規模數據集。
4)簡單一致醒模型,降低系統復雜度,文件一次寫入多次讀取,
?5)“數據就近”原則分配數據節點。
HDFS體系結構
NameNode
DataNode
SecondayNameNode
事務日志
映像文件
?
NameNode
文件系統命名空間
記錄每個文件系統數據塊在各個DataNode上的位置和副本信息。
協調Client對文件的訪問
記錄命名空間內的改動
NameNode使用事務日志記錄HDFS元數據的變化。使用映像文件存儲文件系統的命名空間,文件映射,文件屬性等。
?
DataNode
負責物理節點的存儲管理
一次寫入,多次讀取(不修改)。
文件由數據塊(block)組成默認為64MB。
Block應盡量分配在不同的物理節點上。
?
HDFS讀取流程
Client要訪問HDFS上的一個文件
?
1)從NN獲取組成這個文件的block位置列表。
2)更具列表知道存儲數據快的dn。
3)訪問dn獲取數據。
4)NN并不參與數據實際傳輸。
?
HDFS如何保證集群當中的數據存儲可靠性
1)冗余副本
2)機架策略
3)心跳機制
4)安全模式
5)?快照機制
?
冗余副本
Hdfs默認每個block三個副本(不足三分制動),dn啟動時,向nn匯報各數據快信息。
?
機架策略
集群一般放在不同機架上,
HDFS“機架感知”
一般第一個副本存放在上穿文價的本機架上,如果是本集群外提交,則隨機挑選磁盤不太滿,cpu不太忙的節點存儲。
第二個副本放在與第一個機架不同的節點上,
第三個副本放在與第二個副本相同的節點上。
更多副本:隨機。
?
心跳機制
NN周期從dn接收心跳信息和block報告(3秒一次)
NN根據block報告驗證元數據
沒按時發送心跳(10分鐘)的dn則認為已經lost,并copy其上的block到其他DN。
?
安全模式
NN啟動時會經過“安全模式”階段
安全模式階段不會產生寫操作,只執行寫操作
次階段NN收集NN的報告,當block達到最小副本數以上時,會被認
為是“安全”的,?當block未達到最小副本數時,該塊會被復制知道達到安全。
?
回收站
刪除文件時,將文件放入回收站。
回收站里文件可以快速恢復。
當達到一定閥值時,就被徹底刪除,釋放占用block。
?
快照
支持某一時間點的映像,需要時是數據重返這個時間點。
?
轉載于:https://www.cnblogs.com/kxgdby/p/1faccacd3a30fab27af5b7ff60cfeb52.html
總結
以上是生活随笔為你收集整理的HDFS分布式文件系统设计思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请教各位 android ac
- 下一篇: [AngularJS] 理解Angula