Hadoop退出安全模式

       hadoop为了防止数据丢失,启动了“安全模式”的设置,每次启动hadoop后一段时间内集群处于安全模式,该模式下集群会检查各节点文件块的记录,如果数据块中满足replication设置值的数据块的数量在总数据块数量中所占比例没有超过一定值(称为安全模式阀值,默认为0.999f),那么集群将持续处于安全模式,在该模式下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。

但是如果是在小型测试集群,往往因为结点数量较少,很可能导致集群一直处于安全模式无法自动退出,这种情况下我们可以通过两种方式进行设置:

1.

1. 在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>

  

因为是在配置文件中进行硬修改,不利于管理员操作和修改,因此不推荐此方式

2. 直接在bash输入指令脱离安全模式(本次登录退出安全模式,推荐)

在安全模式下输入指令:

hadoop dfsadmin -safemode leave

即可退出安全模式。

posted @ 2021-09-23 17:02  小赵不吃溜溜梅  阅读(825)  评论(0编辑  收藏  举报