Hadoop namenode无法摆脱安全模式

时间:2015-10-14 03:40:12

标签: hadoop

所有

我使用hadoop2.6.0。

当我强制hadoop离开安全模式时,使用hdfs dfsadmin -safemode leave,它显示Safe mode is OFF,但我仍然无法删除目录中的文件,结果显示: rm: Cannot delete /mei/app-20151013055617-0001-614d554c-cc04-4800-9be8-7d9b3fd3fcef. Name node is in safe mode. 我尝试使用在互联网上列出的方式来解决这个问题,它不起作用......

我使用命令'hdfs dfsadmin -report',它显示:

    Safe mode is ON
    Configured Capacity: 52710469632 (49.09 GB)
    Present Capacity: 213811200 (203.91 MB)
    DFS Remaining: 0 (0 B)
    DFS Used: 213811200 (203.91 MB)
    DFS Used%: 100.00%
    Under replicated blocks: 39
    Blocks with corrupt replicas: 0
    Missing blocks: 0

    -------------------------------------------------
    Live datanodes (1):

    Name: 127.0.0.1:50010 (bdrhel6)
    Hostname: bdrhel6
    Decommission Status : Normal
    Configured Capacity: 52710469632 (49.09 GB)
    DFS Used: 213811200 (203.91 MB)
    Non DFS Used: 52496658432 (48.89 GB)
    DFS Remaining: 0 (0 B)
    DFS Used%: 0.41%
    DFS Remaining%: 0.00%
    Configured Cache Capacity: 0 (0 B)
    Cache Used: 0 (0 B)
    Cache Remaining: 0 (0 B)
    Cache Used%: 100.00%
    Cache Remaining%: 0.00%
    Xceivers: 1
    Last contact: Wed Oct 14 03:30:33 EDT 2015

有没有人遇到同样的问题?

对此有任何帮助。

3 个答案:

答案 0 :(得分:5)

Safemode HDFS 状态,其中文件系统以只读方式挂载;不执行复制,也不能创建或删除文件。这会在 NameNode 启动时自动输入,以允许所有 DataNodes 时间使用NameNode签入并宣布他们拥有哪些块,之前 NameNode 确定哪些块未被复制,等等。 NameNode 会等待特定百分比的块出现并计入;这是由 dfs.safemode.threshold.pct parameter 在配置中控制的。达到此 threshold 后,系统会自动退出 safemode ,HDFS允许正常操作。

1. Below command forces the NameNode to exit safemode

   hdfs dfsadmin -safemode leave

2. Run hdfs fsck -move or hdfs fsck -delete to move or delete corrupted files.

根据报告,似乎资源在NN上很低。添加或释放更多资源,然后手动关闭 safe mode 。的 If you turn off safe mode before adding more resources or freeing up resource, the NameNode will immediately return to safe mode

参考:

  1. Hadoop Tutorial-YDN

  2. fsck

答案 1 :(得分:2)

运行:

hdfs dfsadmin -safemode forceExit

是我的把戏。

答案 2 :(得分:1)

我遇到了同样的问题。之所以发生这种情况,是因为hadoop没有磁盘空间来运行新命令来操作文件。 由于hadoop处于安全模式,我甚至无法删除hadoop中的文件。 我正在使用cloudera版本的hadoop所以我首先删除了cloudera文件系统中的几个文件。这释放了一些空间。然后我执行了以下命令:

    [cloudera@quickstart ~]$ hdfs dfsadmin -safemode leave | hadoop fs -rm -r <file on hdfs to be deleted>

这对我有用! HTH