报错代码如下:
Encountered exception loading fsimage
java.io.IOException: NameNode is not formatted.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:237)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1084)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:709)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:665)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:727)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:950)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:929)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1653)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1720)
解决方案:
1.各种goole和百度要求格式化
2.我这生产环境能动不动就格式化吗?
解决思路
根据提示说是无法load fsimage
于是寻找fsimage所在的位置也就是edits 所在的位置
看到/dfs/nn 目录下只有一个root权限的current.bak 说明系统将current目录给重命名了。
因为我的NN是HA。所以可以把current目录拷贝过来。(不能把currtne.bak名称改过去是因为数据已经发生变更)
1、联系各组负责人需要对hadoop集群进行修复,暂停使用查询或其他操作
2、关闭整个集群,确认服务均已关闭
3、拷贝current数据至故障NN
[root@gw02 nn]# scp -r current/ root@gw03:/dfs/nn/
4、授权
chown -R hdfs.hdfs current
5、删除/tmp 目录下的临时文件
6、重启集群
7、查看hadoop日志、cloudera manager状态正常