HDFS的安全模式

一、什麼是安全模式

安全模式是NameNode的一種狀態,處於安全模式的NameNode不接受任何對於命名空間的修改操作(但是可以接受讀請求),同時也不會觸發任何複製和刪除數據塊的操作

二、爲什麼要有安全模式

NameNode在啓動的時候首先會加載命名空間鏡像(fsimage)並且合併編輯日誌(editlog),完成這些操作後NameNode的文件系統目錄樹就構建完成了;之後NameNode會接受來自DataNode的塊彙報(blockReport),來獲取數據塊的相關信息,用來構建數據塊與存儲這個數據塊副本的DataNode的對應關係。這些操作都是在安全模式下進行的,只有當NameNode收集到的滿足最低副本系數(一個數據塊應該擁有的最少的副本數量)的數據塊數量與HDFS中所有的數據塊的比例滿足閾值比例時纔可以離開安全模式,但是此時並不會立刻退出安全模式,而會在延遲一段時間(默認30秒)之後才退出安全模式。延遲一段時間的目的是爲了等待那些還沒有進行塊彙報的數據節點進行塊彙報。

最低副本系數
dfs.namenode.replication.min 參數設置  默認是 1
閾值比例
dfs.safemode.threshold.pct  參數設置  默認是 0.999
延遲時間
dfs.safamode.extension  參數設置   默認是30秒

threshold = 0 NameNode 不會進入安全模式
threshold = 1 NameNode需要等待所有的數據塊都上報之後才能退出
threshold > 1 NameNode無法自動退出安全模式

在啓動一個剛剛格式化的NameNode時,不會進入安全模式,因爲此時還沒有數據塊

任何時候都可以通過手動的方式退出安全模式

如果是手動進入安全模式的,那麼namenode不會自動退出安全模式,也必須手動退出

三、與安全模式相關的命令

[hadoop@bigdata ~]$ hdfs dfsadmin -safemode
Usage: hdfs dfsadmin [-safemode enter | leave | get | wait]

# 手動進入安全模式
hdfs dfsadmin -safemode enter
# 手動離開安全模式
hdfs dfsadmin -safemode leave
# 查看安全模式的狀態
hdfs dfsadmin -safemode get
# 等待一直到安全模式結束
hdfs dfsadmin -safemode wait

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章