HDFS2.0原理

若塵大聖發表於2020-12-08

HDFS 2.0 新特性
(1)NameNode HA
(2)NameNode Federation
(3)HDFS 快照
(4)HDFS 快取
(5)HDFS ACL

hdfs2.0
1、2.0中NameNode HA主要解決單點故障問題(使用兩個namenode,一個active NameNode 一個是standby NameNode)
2、因為有兩個NameNode 所以資料一致性如何保證?
(1)共享網路檔案系統(類似檔名->block資料塊之間的對映關係(mapping關係))
(2)DataNode 同時向兩個NameNode傳送心跳機制(block->DataNode節點之間的對映關係)
在這裡插入圖片描述
3.JN(共享網路檔案系統) --叢集,前提是節點個數為奇數(因為要進行投票機制來確定檔案儲存) 作用資料統一儲存

4.利用QJM(只有投票,沒有儲存),JN部署和DN部署在一起
在這裡插入圖片描述
FailoverControllerActive:故障轉移,利用zookeeper來保證,主要通過有序的臨時節點來保證。
在這裡插入圖片描述
NameNode1掛掉後:
在這裡插入圖片描述
節點部署時候叢集配置
(1)JN部署一般和DN在一起
(2)FC通常和NN部署在一起的,因為要監控NN
(3)NN可以和DN可以部署在一起,也可以分開
(4)zk(zookeeper)本身維護這一個叢集

前面解決了高可用的問題,但是NN本身的記憶體資源也是不夠的
聯邦:解決了高可用、記憶體資源增加
通過將資料切分,產品部門,技術部門,其他業務部門,自己維護自己的nameNode,但是背後的資料都是共享一套DN
好處:減輕單一的NN壓力,將資料可以通過其他的NN來管理
有利於叢集的橫向擴充套件,效能帶來很大提升,因為每個NN都是自己維護的,所以資源得到隔離
本質:後設資料管理與儲存得到解耦,但是真實資料是共享的。
在這裡插入圖片描述
HDFS 快照:資料備份,災備(很少接觸,瞭解就行)
本質:快照只是記錄block的大小和列表,但是並不涉及到資料的直接複製
• HDFS快照是一個只讀的基於時間點檔案系統拷貝
• 快照可以是整個檔案系統的也可以是一部分。
• 常用來作為資料備份,防止使用者錯誤操作和容災恢復。
• Snapshot 並不會影響HDFS 的正常操作:修改會按照時間的反序記錄,這樣可
以直接讀取到最新的資料。
• 快照資料是當前資料減去修改的部分計算出來的。
• 快照會儲存在snapshottable的目錄下。

HDFS的快取:快速查詢

ACL:
HDFS ACL
• Hadoop從2.4.0開始支援
• 目前HDFS的許可權控制與Linux一致,包括使用者、使用者組、其他使用者組三類許可權
• 首先引數上要開啟基本許可權和訪問控制列表功能
– dfs.permissions.enabled
• 常用命令:
– hadoop fs -getfacl /input/acl – hadoop fs -setfacl -m user:mapred:r-- /input/acl - hadoop fs -setfacl -x user:mapred /input/acl

dr(讀許可權)w(寫許可權)x(執行許可權)(代表owner的許可權)r-x(使用者同組的許可權)r-x (其他不是和owner同組的使用者) 2(副本數) root supergroup 0 2020-12-05 23:05 /test
d表示目錄,若是檔案使用“-”