官网介绍:
在启动期间,NameNode从fsimage和edits日志文件加载文件系统状态。然后,它等待DataNodes报告其块,以便尽管群集中已存在足够的副本,但它不会过早地开始复制块。在此期间,NameNode保持在Safemode中。NameNode的安全模式本质上是HDFS集群的只读模式,它不允许对文件系统或块进行任何修改。通常,在DataNode报告大多数文件系统块可用之后,NameNode会自动离开Safemode。如果需要,可以使用bin / hdfs dfsadmin -safemode命令显式地将HDFS置于Safemode中。NameNode首页显示Safemode是打开还是关闭。
什么是安全模式:
namenode启动时,首先将映像文件(fsimage)载入内存,并中兴编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件(该操作不需要借助namenode)和一个空的编辑日志。此时,namenode开始监听RPC和http请求。但是此刻namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。(只有访问文件系统元数据的文件系统操作时肯定成功执行的,对于读文件操作,只有集群中当前datanode上的块可用时,才能工作。但文件修改操作,包括写、删或重命名均会失败)
在安全模式下namenode并不向datanode发出任何块复制或删除的指令。如果满足“最小副本条件”,namenode会在30秒钟后就退出安全模式,启动一个刚格式化的HDFS集群时,因系统中还没任何块,所以namenode不会进入安全模式。