好程式設計師:HDFS的安全模式

什麼是安全模式:

安全模式是HDFS所處的一種特殊狀態,在這種狀態下,文件系統只接受讀數據請求,而不接受刪除、修改等變更請求。

安全模式下hdfs做了什麼事:

1、NameNode啟動後會進入一個稱為安全模式的特殊狀態。處於安全模式的NameNode是不會進行數據塊的複製的。

2、NameNode從所有的DataNode接收心跳信號和塊狀態報告。塊狀態報告包括了某個NameNode所有的數據塊列表。每個數據塊都有一個指定的最小副本數。當NameNode檢測確認某個數據塊的副本數目達到這個最小值,那麼該數據塊就會被認為是副本安全 (safely replicated) 的;

3、在一定百分比(這個參數可配置)的數據塊被 NameNode檢測確認是安全之後(加上一個額外的30秒等待時間), NameNode將退出安全模式狀態。

4、接下來它會確定還有哪些數據塊的副本沒有達到指定數目,並將這些數據塊複製到其他NameNode上。

怎麼離開安全模式:

方法一、暴力的直接將整個文件系統格式化:hdfs namenode -format

方法二、將其控制安全模式的閥值調小:dfs.safemode.threshold.pct(將其該值調整整)

方法三、使用命令強制離開安全模式然後再檢測損壞block並刪除:

1.hdfs dfsadmin -safemode leave (強制離開安全模式)

2.hdfs fsck / -delete (刪除掉損壞的blocks)

如果想修復,可以使用linux的/sbin/fsck修復工具。


分享到:


相關文章: