在安全模式下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。 但是如果是在小型测试集群,往往因为结点数量较少,很可能导致集群一直处于安全模式无法自动退出,这种情况下我们可以通过两种方式进行设置:

一:永久关闭

在HDFS配置文件中修改安全模式阀值,达到关闭安全模式的目的
在hdfs-site.xml中设置安全阀值属性,属性值默认为0.999f,如果设为1则不进行安全检查

<property>
  <name>dfs.safemode.threshold.pct</name>
  <value>0.999f</value>
  <description>
    Specifies the percentage of blocks that should satisfy
    the minimal replication requirement defined by dfs.replication.min.
    Values less than or equal to 0 mean not to wait for any particular
    percentage of blocks before exiting safemode.
    Values greater than 1 will make safe mode permanent.
  </description>
</property>

这样配置之后,以后hadoop启动时都不会再进入安全模式了

二:短暂关闭

仅退出当前次hadoop安全模式,下次启动hadoop时,照常有可能会进入安全模式。
输入命令:hadoop dfsadmin -safemode leave
即可退出安全模式。