NameNode在啟動的時候首先進入安全模式,如果 datanode 丟失的block達到一定的比例(1-dfs.safemode.threshold.pct),則系統會一直處於安全模式狀態即只讀狀態。
dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS啟動的時候,如果DataNode上報的block個數達到了元 數據 記錄的block個數的0.999倍才可以離開安全模式,否則一直是這種只讀模式。如果設為1則HDFS永遠是處於SafeMode。
下面這行摘錄自NameNode啟動時的日志(block上報比例1達到了閥值0.9990)
The ratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe mode will be turned off automatically in 18 seconds.
hadoop dfsadmin -safemode leave
有兩個方法離開這種安全模式
1. 修改dfs.safemode.threshold.pct為一個比較小的值,缺省是0.999。
2. hadoop dfsadmin -safemode leave命令強制離開
用戶可以通過dfsadmin -safemode value 來操作安全模式,參數value的說明如下:
enter - 進入安全模式
leave - 強制NameNode離開安全模式
get - 返回安全模式是否開啟的信息
wait - 等待,一直到安全模式結束。
