在啓動過程中,NAMENODE從FSIMAGE和編輯日誌文件加載文件系統狀態。然後,它等待數據塊報告它們的塊,以便即使在集羣中已經存在足夠的副本,也不會過早地開始複製這些塊。在此期間,NAMENODE停留在Safemode。NAMENODE的安全模式本質上是HDFS集羣的只讀模式,它不允許對文件系統或塊進行任何修改。通常,NAMENODE在數據報已經報告大多數文件系統塊可用之後自動離開SaveMode。如果需要,HDFS可以使用bin/hdfs dfsadmin -safemode命令顯式地放置在SaaMaMeDE中。NAMENODE首頁顯示Safemode是否打開或關閉。更詳細的描述和配置被保持爲JavaDoc用於setSafeMode().
相關操作
public interface SafeMode {
/**
* Check safe mode conditions.
* If the corresponding conditions are satisfied,
* trigger the system to enter/leave safe mode.
*/
public void checkSafeMode();
/** Is the system in safe mode? */
public boolean isInSafeMode();
/**
* Is the system in startup safe mode, i.e. the system is starting up with
* safe mode turned on automatically?
*/
public boolean isInStartupSafeMode();
/** Check whether replication queues are being populated. */
public boolean isPopulatingReplQueues();
/**
* Increment number of blocks that reached minimal replication.
* @param replication current replication
*/
public void incrementSafeBlockCount(int replication);
/** Decrement number of blocks that reached minimal replication. */
public void decrementSafeBlockCount(Block b);
}