Name node is in safe mode. Not able to leave

root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.

not able to create anything in hdfs

I did

root# bin/hadoop fs -safemode leave

But showing

safemode: Unknown command

what is the problem?

Solution: http://unmeshasreeveni.blogspot.com/2014/04/name-node-is-in-safe-mode-how-to-leave.html?m=1

229710 次浏览

为了强制让 namenode 离开 safe 模式,应该执行以下命令:

 bin/hadoop dfsadmin -safemode leave

您的命令出现了 Unknown command错误,因为 -safemode不是 hadoop fs的子命令,而是 hadoop dfsadmin的子命令。

在执行了上述命令之后,我建议您运行一次 hadoop fsck,以便可以解决 hdfs 中出现的任何不一致问题。

更新:

对于较新的发行版,使用 hdfs命令而不是 hadoop命令:

hdfs dfsadmin -safemode leave

hadoop dfsadminhadoop fs命令已经被废弃,所有与 hdfs 相关的任务都被转移到一个单独的命令 hdfs中。

指挥部不为我工作,但下面的人为我工作

hdfs dfsadmin -safemode leave

我使用了 hdfs命令而不是 hadoop命令。

也看看 http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe-mode-链接

当内存不足时,Namenode 进入安全模式。因此 HDFS 变得只可读。这意味着不能在 HDFS 中创建任何其他目录或文件。要退出安全模式,使用以下命令:

hadoop dfsadmin -safemode leave

如果你使用的是 Cloudera 管理器:

go to >>Actions>>Leave Safemode

但这并不总能解决问题。完整的解决办法在于在内存中留出一些空间。使用以下命令检查内存使用情况。

free -m

如果您正在使用 Cloudera,您还可以检查 HDFS 是否显示出一些健康状况不佳的迹象。它可能显示了一些与 namenode 相关的内存问题。按照可用的选项分配更多内存。我不确定如果您不使用 Cloudera 管理器,那么对于相同的命令应该使用什么命令,但是必须有一种方法。希望能有帮助!:)

试试这个,会有用的

sudo -u hdfs hdfs dfsadmin -safemode leave

如果您使用上面的 Hadoop 版本2.6.1,当该命令工作时,它会抱怨其折旧。我实际上不能使用 hadoop dfsadmin -safemode leave,因为我在一个 Docker 容器中运行 Hadoop,当在容器中运行时,这个命令会神奇地失败,所以我这样做了。我查了文档,发现文档里有 dfs.safemode.threshold.pct

指定应满足最小 由 dfs.plication.min 定义的复制需求 大于或等于0意味着不等待任何特定百分比的 大于1的值将使安全 永久模式。

所以我把 hdfs-site.xml改成了以下的版本(在旧版本的 Hadoop 中,显然你需要在 hdfs-default.xml中做到这一点:

<configuration>
<property>
<name>dfs.safemode.threshold.pct</name>
<value>0</value>
</property>
</configuration>

使用 HDFS OS 用户运行以下命令禁用安全模式:

sudo -u hdfs hadoop dfsadmin -safemode leave

使用以下命令关闭安全模式

$> 高等教育及家庭服务部 dfsadmin-安全模式假期

试试这个

sudo -u hdfs hdfs dfsadmin -safemode leave

检查安全模式状态

sudo -u hdfs hdfs dfsadmin -safemode get

如果它仍处于安全模式,那么原因之一就是节点空间不足,您可以使用以下方法检查节点磁盘使用情况:

df -h

如果根分区已满,请删除文件或在根分区中添加空间,然后重试第一步。

方法上的安全模式(HDFS 处于只读模式)
安全模式关闭方式(HDFS 处于可写和可读模式)

Hadoop 2.6.0中,我们可以通过以下命令检查名称节点的状态:

检查名称节点状态

$ hdfs dfsadmin -safemode get

进入安全模式:

$ hdfs dfsadmin -safemode enter

离开安全模式

~$ hdfs dfsadmin -safemode leave