org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /user/admin/grep-temp-610649987. Name node is in safe mode.
原因是namenode处在安全模式下 不能删除
执行:
hdfs dfsadmin -safemode leave
hadoop默认情况下在安全模式运行。可以通过下面hadoop dfsadmin -safemode 参数,查看相关的状态和设置安全模块是否启用。
enter 进入安全模式
leave 强制NameNode离开安全模式
get 返回安全模式是否开启的信息
wait 等待,一直到安全模式结束
解决办法有二种:
《1》可能运行命令hadoop dfsadmin -safemode leave 离开安全模式,但是每次都需要手动去设置。
《2》通过配置dfs.safemode.threshold.pct的参数。默认情况下是0.9990f。这个配置可以在hdfs-defalut.xml中找到。我们可以把这个参数配置为0,永久关闭安全模式。
在hadoop中的hdfs-site.xml添加如下配置:
<property>
<name>dfs.safemode.threshold.pct</name>
<value>0f</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>
重启NameNode就可以了。