name节点处于安全模式不能离开

vyu0f0g1  于 2021-06-02  发布在  Hadoop
关注(0)|答案(9)|浏览(784)
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.

无法在hdfs中创建任何内容
是的

root# bin/hadoop fs -safemode leave

但是展示

safemode: Unknown command

有什么问题?
解决方案:http://unmeshasreeveni.blogspot.com/2014/04/name-node-is-in-safe-mode-how-to-leave.html?m=1

wecizke3

wecizke31#

如果您使用hadoopversion2.6.1以上的版本,当命令运行时,它会抱怨它的值被降低了。我真的不能用这个 hadoop dfsadmin -safemode leave 因为我在docker容器中运行hadoop,而在容器中运行时,该命令会神奇地失败,所以我所做的就是这样。我查了医生发现 dfs.safemode.threshold.pct 在文件中说
指定应满足dfs.replication.min定义的最小复制要求的块百分比。小于或等于0的值表示在退出安全模式之前不等待任何特定百分比的块。大于1的值将使安全模式永久化。
所以我改变了主意 hdfs-site.xml 在旧的hadoop版本中,显然您需要在 hdfs-default.xml :

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

s8vozzvw2#

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

bin/hadoop dfsadmin -safemode leave

你越来越 Unknown command 命令错误为 -safemode 不是的子命令 hadoop fs ,但它是 hadoop dfsadmin .
同样在上面的命令之后,我建议你跑一次 hadoop fsck 这样,HDF中出现的任何不一致之处都可以得到解决。
更新:
使用 hdfs 命令而不是 hadoop 新发行版的命令。这个 hadoop 命令已被否决:

hdfs dfsadmin -safemode leave
``` `hadoop dfsadmin` 已经被否决了 `hadoop fs` 命令,所有与hdfs相关的任务都将被移动到一个单独的命令 `hdfs` . 
mlmc2os5

mlmc2os53#

安全模式开启意味着(hdfs处于只读模式)
安全模式关闭意味着(hdfs处于可写和可读模式)
Hadoop 2.6.0 ,我们可以通过以下命令检查名称节点的状态:
检查名称节点状态

$ hdfs dfsadmin -safemode get

要进入安全模式:

$ hdfs dfsadmin -safemode enter

离开安全模式

~$ hdfs dfsadmin -safemode leave
4ktjp1zp

4ktjp1zp4#

命令对我不起作用,但下面的命令起作用了

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- 链接也是

4ktjp1zp

4ktjp1zp5#

使用hdfs os用户运行以下命令以禁用安全模式:

sudo -u hdfs hadoop dfsadmin -safemode leave
kxe2p93d

kxe2p93d6#

试试这个,会有用的

sudo -u hdfs hdfs dfsadmin -safemode leave
sg24os4d

sg24os4d7#

使用下面的命令关闭安全模式
$>hdfs dfsadmin-安全模式离开

4ngedf3f

4ngedf3f8#

当内存不足时,namenode进入安全模式。结果,hdfs变得只可读。这意味着不能在hdfs中创建任何额外的目录或文件。要退出安全模式,使用以下命令:

hadoop dfsadmin -safemode leave

如果您使用的是cloudera manager:

go to >>Actions>>Leave Safemode

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

free -m

如果您使用的是cloudera,还可以检查hdfs是否显示出一些不健康的迹象。它可能显示了一些与namenode相关的内存问题。按照可用选项分配更多内存。如果您不使用cloudera管理器,我不确定要使用什么命令来执行相同的操作,但必须有一种方法。希望有帮助!:)

sqserrrh

sqserrrh9#

试试这个

sudo -u hdfs hdfs dfsadmin -safemode leave

检查安全模式的状态

sudo -u hdfs hdfs dfsadmin -safemode get

如果仍处于安全模式,则其中一个原因可能是节点中没有足够的空间,可以使用以下方法检查节点磁盘的使用情况:

df -h

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

相关问题