hadoop2.0报错“There appears to be a gap in the edit log”

在升级Hadoop2.0集群时遇到namenode启动失败,报错'There appears to be a gap in the edit log'。常规的解决办法风险过高,通过阅读源码发现问题是由于journalnode上的edits数据丢失。解决方案是找到丢失的edit记录,从active namenode复制到所有journalnode,避免数据丢失和recovery操作。

今天升级集群的时候遇到了这个问题。解决问题的过程中,借机也巩固了下对namenode启动过程的理解。这个问题网上几乎没查到好的解决办法,Google出来的办法说让Recovery,对已经有很大数据量的线上集群来说,风险太大,不可取。所以只能自己读着源码一步一步分析,终于还是找到了解决方法.


问题描述:

因为要升级集群,所以先停服务-->做升级-->重启服务。但是在重启服务的时候,standby namenode启动失败,每次都是先启动成功,然后在加载元数据的时候失败,shutdown. 报错如下:

<span style="font-family:Microsoft YaHei;font-size:12px;">2015-07-15 16:26:44,305 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
java.io.IOException: There appears to be a gap in the edit log.  We expected txid 176531929, but got txid 176533587.
        at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:94)
        at org.apache.hadoop.hdfs.server.namenod
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值