当前位置:   article > 正文

Hadoop3.3.6版本自动转移故障_hadoop高可用无法自动转移active

hadoop高可用无法自动转移active

问题描述:

在我的 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述
刚开始使用的是 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/872747
推荐阅读
相关标签
  

闽ICP备14008679号