HDFS HA 两个NameNode 都是standby状态

本文详细记录了HDFSHA集群中双NameNode处于备用状态的问题排查及解决过程,通过检查配置文件、格式化ZKFC及利用Zookeeper进行状态确认,最终解决了namenodeid不一致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS HA 的两个NameNode 都是备用状态,怎么解决?

方法:

重启,不管用。。。。。。

查看日志,/var/log/ 里面的NameNode 日志,发现有这么一段

java.lang.IllegalArgumentException: 
Unable to determine service address for namenode 'namenode87'

我们继续到配置文件中找namenode名称,发现两个namenode的名字分别是 namenode108 and namenode139

<name>dfs.ha.namenodes.ns1</name>
<value>namenode108,namenode139</value>

所以我们就找到了问题所在, namenode id 不一致。

网上解决方法有重新格式化ZKFC,

sudo -u hdfs hdfs zkfc -formatZK

格式化以后,在Zookeeper client 中,我们看到在 hadoop-ha 目录中,增加了部分文件。
终端中输入 zookeeper-client 命令进入客户端

[zk: localhost:2181(CONNECTED) 8] ls /hadoop-ha/ns1
[ActiveBreadCrumb, ActiveStandbyElectorLock]

[zk: localhost:2181(CONNECTED) 10] get /hadoop-ha/ns1/ActiveBreadCrumb

ns1
   namenode108node1.ecreditpal.local �>(�>
cZxid = 0x16000094e7
ctime = Tue Feb 25 16:32:51 CST 2020
mZxid = 0x16000094e7
mtime = Tue Feb 25 16:32:51 CST 2020
pZxid = 0x16000094e7
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 48
numChildren = 0
[zk: localhost:2181(CONNECTED) 11] get /hadoop-ha/ns1/ActiveStandbyElectorLock

ns1
   namenode108node1.ecreditpal.local �>(�>
cZxid = 0x16000094e6
ctime = Tue Feb 25 16:32:51 CST 2020
mZxid = 0x16000094e6
mtime = Tue Feb 25 16:32:51 CST 2020
pZxid = 0x16000094e6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x2707ae8de840fe3
dataLength = 48
numChildren = 0
[zk: localhost:2181(CONNECTED) 12]

在格式化之前是没有ActiveStandbyElectorLock文件的。

最后问题解决了。。。
但是为什么好好的zk 就不行了呢,纳闷。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值