描述:
Hadoop执行job的时候抛出SafeModeException,详情如下:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot delete /benchmarks/TestDFSIO. Name node is in safe mode.
Resources are low on NN. Please add or free up more resources then turn off safe mode manually. NOTE: If you turn off safe mode before adding resources, the NN will immediately return to safe mode. Use "hdfs dfsadmin -safemode leave" to turn safe mode off.
原因:
Hadoop目前处于safe状态,产生的原因与dfs.safemode.threshold.pct,有关系,默认为99,9%,为了系统的安全考虑那么系统自动进入安全状态,从而任何修改操作将不能进行,说的直白点就是空间满了
解决:
1.强制离开安全模式:
hdfs dfsadmin -safemode leave
2.增加磁盘然后执行wait命令:
hdfs dfsadmin -safemode wait
1和2是两种方案
通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。