hadoop namenode启动不起来解决方法
(2012-10-22 12:49:35)
标签:
it |
放假回来,发现集群不工作了,namenode已不再,查看日志:
It
should work.
2012-10-22 11:00:48,234 ERROR
org.apache.hadoop.hdfs.server.namenode.NameNode:
java.lang.NumberFormatException: For input string: ""
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Short.parseShort(Short.java:120)
at java.lang.Short.parseShort(Short.java:78)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLog.readShort(FSEditLog.java:1311)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:541)
at
org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:1011)
at
org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:826)
at
org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:364)
at
org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
at
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:315)
at
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:296)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:205)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:283)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:986)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:995)
2012-10-22 11:00:48,236 INFO
org.apache.hadoop.hdfs.server.namenode.NameNode:
SHUTDOWN_MSG:
大概是因为,首先是主节点的磁盘没空间了,建议先把集群各节点的剩余空间看下,最好有定时清理的程序。
腾出空间后,再重新启动,仍然有问题。那么,就有可能是namenode的资料有损了,到dfs.name.dir目录下查看一下,比较一下image中fsimage和current中fsimage的大小,将前面的拷进后面的替换掉(做好备份),再试试。
如果还不行,看你是否有这只secondarynamenode,如果有,将里面的文件覆盖掉dfs.name.dir下的,重新启动试试。
再不行的话,网上说是把namenode的current中所有文件备份好,然后格式化namenode,然后把备份的image拷贝回来,重启namenode所有服务后,./bin/start-balancer.sh,就一切OK了。但是我怕hbase里的数据会丢失。
于是再找,发现一个方法竟然可行,具体原因也不是很明白,Could
you backup your edits file, try $ printf "\xff\xff\xff\xee\xff"
>
edits,
and start HDFS?
就是把原来的edits备份下,再新的空的edits下写入上面的内容(注意要在新的空的文件下,不然我试过还是会有问题出现),然后,重启hadoop,问题解决!

加载中…