在启动过程中,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);
}