Hadoop集群启动的时候一切正常,但一直处于safemode,只能读不能写,这种时候应该查看namenode的logs,当然这可能会出现不同的情况... 下面仅介绍一种错误处理方案,希望能抛砖引玉,能对大家有所启发。
以下是日志提示(此地只摘抄了重要部分)
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /home/hadoop/tmp/mapred/system. Name node is in safe mode.
The ratio of reported blocks 0.0000 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
The ratio of reported blocks 0.0000 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
解决方案:
1:终极办法强制退出安全模式(safemode) hadoop dfsadmin -safemode leave 这种方式虽然快,但会有遗留问题,我在用habse的时候就遇到过,很麻烦,然后你就用“hadoop fsck /”工具慢慢恢复吧。
2:删除namenode下/home/hadoop/tmp下的所有文件,重新format,当然这种方式非常暴力,因为你的数据完全木有了(对于format后可能会遇到的问题我的另一篇文章 http://blog.youkuaiyun.com/rzhzhz/article/details/7056812 有提到)
3:参考源码可发现这个错误是在检查file的时候抛出来的,基本也就是file的block丢失、错误等原因造成的。这种情况在副本数为1的情况下会很棘手,其他的时候hadoop基本能自行解决,错误数很多的情况下就会一直处于safemode下,当然你可以强制离开安全模式,先保证正常读写,然后再启用“hadoop fsck /”工具慢慢修复。
关于集群修改配置文件后的分发,本人写了一个配置文件分发工具http://blog.youkuaiyun.com/rzhzhz/article/details/7056775,希望能给大家带来便利。
Hadoop集群启动异常处理:深入解读安全模式问题与解决方案
本文深入分析了Hadoop集群启动时遇到的安全模式问题,并提供了一种有效的日志解析方法及多种解决方案。通过具体实例展示如何识别并处理导致无法删除特定目录的错误信息,包括强制退出安全模式、删除namenode下特定目录文件及数据恢复等步骤。同时,文章还分享了一个用于集群配置文件分发的实用工具,旨在帮助提升Hadoop集群管理效率。
914

被折叠的 条评论
为什么被折叠?



