當 Hadoop的NameNode節點啟動時,會進入安全模式階段。在此階段,DataNode會向NameNode上傳它們數據塊的列表,讓NameNode得到塊的位置信息,並對每個文件對應的數據塊副本進行統計。當最小副本條件滿足時,即一定比例的數據塊都達到最小副本數,系統就會退出安全模式,而這需要一定的延遲時間。當最小副本條件未達到要求時,就會對副本數不足的數據塊安排DataNode進行復制,直至達到最小副本數。而在安全模式下,系統會處於只讀狀態,NameNode不會處理任何塊的復制和刪除命令。
安全模式相關屬性的設置:
安全模式的相關屬性都在文件conf/hdfs-site.xml中指定,有如下幾個:
dfs.replication.min 指定數據塊要達到的最小副本數,默認為1;
dfs.safemode.extension 指定系統退出安全模式時需要的延遲時間,默認為30(秒);
dfs.safemode.threshold.pct 指定退出條件,需要達到最小副本數的數據塊比例,默認是0.999
(如果設置的副本數為4,而現在只有2個副本,2/4=0.5,即視為未達到最小比例,則需要把缺少的副本數據復制到4個副本即可運行)