NameNode不能启动报 NullPointerException
来源:互联网 发布:网络动漫制作公司 编辑:程序博客网 时间:2024/06/01 09:33
hadoop 1.02,hbase 0.92.系统所有node改了ip地址后,second name node过了一段时间退出,报如下错误:
2012-12-17 17:09:05,646 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.NullPointerException at org.apache.hadoop.hdfs.server.namenode.FSDirectory.addChild(FSDirectory.java:1094) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.addChild(FSDirectory.java:1106) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.addNode(FSDirectory.java:1009) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedAddFile(FSDirectory.java:208) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:626) at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:1015) at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:833) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:372) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:388) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:362) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276) at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:496) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288)
可能的原因,是edits文件损坏。我们做了网络系统的备份,但备份文件和现有文件一模一样,也损坏了。
停止所有进程后,重启,结果name node启动失败,报同样错误。
[hbase@h46 ~]$ hadoop fsck /
The filesystem under path ‘/’ is CORRUPT
网上有人想了3种解决办法:
1. Use the checkpoint and revert to May 4th 2. Manually repair the "edits" or "edits.new" file 3. Temporarily edit the Hadoop code修改hadoop源码 FSEditLog.java:626边上的代码,加上try catch,系统起来后再改回去。 INodeFile node = null; try { node = (INodeFile)fsDir.unprotectedAddFile(path, permissions, blocks, replication, mtime, atime, blockSize); } catch (NullPointerException e) { }
我用的是第二种方法,删除edits.new,在edits文件中输入16进制内容0xffffffeeff
用python写入该二进制文件
import binasciif=open("edits","wb")d="ffffffeeff"hb=binascii.a2b_hex(d)f.write(hb)f.close()
将原namenode current目录备份后,用该edits文件替换原来的edits。
结果namenode重启成功。
带来的问题是HBase 会有问题,找不到一些region,shell中list table报异常。可能失去的的记录中正好保存了meda数据。
因此考虑从second namenode恢复或者从check point恢复。部分数据的丢失不可避免了。
这种办法可能对没有使用HBase的有效。
- NameNode不能启动报 NullPointerException
- 启动NameNode报NullPointerException
- Namenode dataNode 不能启动
- Hadoop namenode不能启动
- hadoop namenode不能启动原因
- Hadoop namenode 不能启动解决方案
- Hadoop NameNode结点不能启动
- Hadoop NameNode结点不能启动
- Hadoop namenode 不能启动解决方案
- 启动WebLogic报错NullPointerException
- hadoop启动namenode节点报错
- hadoop namenode启动报Permission denied
- 艰辛的aptana插件安装之路(续)--成功解决myeclipse不能启动和报java.lang.NullPointerException的问题
- 艰辛的aptana插件安装之路(续)--成功解决myeclipse不能启动和报java.lang.NullPointerException的问题
- 艰辛的aptana插件安装之路(续)--成功解决myeclipse不能启动和报java.lang.NullPointerException的问题
- hadoop中namenode不能启动,导致浏览器不能连接
- hadoop 单机版namenode不能启动原因以及解决
- Hadoop Namenode不能启动 dfs/name is in an inconsistent
- adb操控多个设备
- RGB和YUV的区别和转换
- uva11248 Frequency Hopping
- 淘宝十年数据和轶事整理
- 疯狂java UDP协议的网络通信
- NameNode不能启动报 NullPointerException
- YUV颜色编码
- UDID替代方案
- 【单调队列】COGS 308. [HAOI2007] 理想的正方形
- 在Visual Studio 2013 中使用WTL
- GIS相关知识(学习)
- java序列化的serialVersionUID
- Android网络通信库Volley简介
- 折半查找