运行hadoop程序时,有时候会报以下错误:
org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name
node is in safe mode
这个错误应该还满常见的吧(至少我运行的时候是这样的)
那我们来分析下这个错误,从字面上来理解:
Name node is in safe mode
说明Hadoop的NameNode处在安全模式下。
那什么是Hadoop的安全模式呢?
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况
下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启
动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。
运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安
全模式不允许修改的出错提示,只需要等待一会儿即可。
现在就清楚了,那现在要解决这个问题,我想让Hadoop不处在safe mode 模式下,能不能不用
等,直接解决呢?
答案是可以的,只要在Hadoop的目录下输入:
- hadoop@hadoop-master:~$ hadoop dfsadmin -safemode leave
阅读(1727) | 评论(1) | 转发(1) |