Hadoop3.3.6版本自动转移故障

问题描述:

在我的 Hadoop 集群中,我配置了双节点的高可用性(HA)架构,其中每个节点都承担着 NameNode 的角色。最初,主 NameNode(Active)位于 Master1 上,而备用 NameNode(Standby)位于 Master2 上。然而,当我停止了 Master1 上的主 NameNode 时,我们期望备用 NameNode 在一段时间后能够自动转变为主(Active)状态。但是,我发现在这种情况下,备用 NameNode 并没有按预期转变为主(Active)状态。当我重新启动 Master1 上的主 NameNode 后,备用 NameNode 才成功地转变为主(Active)状态。

zkfc报错如下所示:

2024-04-07 09:30:46,582 WARN org.apache.hadoop.ha.SshFenceByTcpPort: Unable to create SSH session
com.jcraft.jsch.JSchException: invalid privatekey: [B@6489bbad
        at com.jcraft.jsch.KeyPair.load(KeyPair.java:664)
        at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
        at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
        at com.jcraft.jsch.JSch.addIdentity(JSch.java:406)
        at com.jcraft.jsch.JSch.addIdentity(JSch.java:366)
        at org.apache.hadoop.ha.SshFenceByTcpPort.createSession(SshFenceByTcpPort.java:121)
        at org.apache.hadoop.ha.SshFenceByTcpPort.tryFence(SshFenceByTcpPort.java:90)
        at org.apache.hadoop.ha.NodeFencer.fence(NodeFencer.java:113)
        at org.apache.hadoop.ha.NodeFencer.fence(NodeFencer.java:92)
        at org.apache.hadoop.ha.ZKFailoverController.doFence(ZKFailoverController.java:559)
        at org.apache.hadoop.ha.ZKFailoverController.fenceOldActive(ZKFailoverController.java:532)
        at org.apache.hadoop.ha.ZKFailoverController.access$1100(ZKFailoverController.java:63)
        at org.apache.hadoop.ha.ZKFailoverController$ElectorCallbacks.fenceOldActive(ZKFailoverController.java:968)
        at org.apache.hadoop.ha.ActiveStandbyElector.fenceOldActive(ActiveStandbyElector.java:1022)
        at org.apache.hadoop.ha.ActiveStandbyElector.becomeActive(ActiveStandbyElector.java:921)
        at org.apache.hadoop.ha.ActiveStandbyElector.processResult(ActiveStandbyElector.java:499)
        at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:684)
        at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:563)
2024-04-07 09:30:46,582 WARN org.apache.hadoop.ha.NodeFencer: Fencing method org.apache.hadoop.ha.SshFenceByTcpPort(null) was unsuccessful.
2024-04-07 09:30:46,582 ERROR org.apache.hadoop.ha.NodeFencer: Unable to fence service by any configured method.
2024-04-07 09:30:46,583 WARN org.apache.hadoop.ha.ActiveStandbyElector: Exception handling the winning of election

在这里插入图片描述
刚开始使用的是 ssh-keygen -t rsa 这种免密方式,不能切换,修改后:ssh-keygen -t rsa -m PEM 这种可以。

使用 ssh-keygen -t rsa -m PEM 命令生成的密钥遵循了 PEM 格式的标准,而不仅仅是 SSH 的默认格式。PEM 是一种通用的格式,它在加密领域和各种应用程序之间都得到了广泛的应用。在某些情况下,尤其是在特定的系统或配置中,使用 PEM 格式的密钥可能会更加兼容和可靠。
对于 Hadoop 高可用性(HA)架构,尤其是在配置故障转移时,使用 PEM 格式的密钥可能是必要的。PEM 格式提供了更广泛的兼容性,可能会避免一些潜在的问题,并确保故障转移功能正常运行。
因此,尽管 ssh-keygen -t rsa 生成的密钥对通常也可以工作,但在某些情况下,特别是在涉及到故障转移等关键任务时,使用 PEM 格式的密钥可能会更可靠。

转自:https://blog.csdn.net/garry1861/article/details/121110630

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值