hadoop namenode 数据恢复

在一次hadoop的重启过程中,重启失效,只能杀掉hadoop的namenode进程。

再重启的时候,出现如下问题:

2012-05-18 15:17:35,313 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.NullPointerException
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedSetTimes(FSDirectory.java:1356)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedSetTimes(FSDirectory.java:1345)
    at org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:774)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:1009)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:827)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:365)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:379)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:353)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:254)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:434)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1153)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1162)

查看name/current

drwxr-xr-x 2 hadoop hadoop     4096 2012-05-18 16:30 .
drwxr-xr-x 8 hadoop hadoop     4096 2012-05-23 09:45 ..
-rw-r--r-- 1 hadoop hadoop   864517 2012-05-18 16:30 edits
-rw-r--r-- 1 hadoop hadoop 20914385 2012-05-18 16:30 edits.new
-rw-r--r-- 1 hadoop hadoop 13644512 2012-05-18 16:30 fsimage
-rw-r--r-- 1 hadoop hadoop        8 2012-05-18 16:30 fstime
-rw-r--r-- 1 hadoop hadoop      100 2012-05-18 16:30 VERSION

出现了一个edits.new文件。说明在重启hadoop的时候没有将edits的信息合并到fsimage中,造成namenode出错。

将/tmp/dfs/namesecondary/current
中的edits,fsimage,fstime,VERSION拷贝到name/current中。
这个实际是将secondarynamenode定时镜像的文件覆盖掉出错的name节点的数据。

重启hadoop。正常启动。
这种方式,需要保证secondarynamenode是正确运行的,配置正确,每隔1个小时备份一次。这样能尽量保证数据的恢复。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值