赞
踩
在我的 Hadoop 集群中,我配置了双节点的高可用性(HA)架构,其中每个节点都承担着 NameNode 的角色。最初,主 NameNode(Active)位于 Master1 上,而备用 NameNode(Standby)位于 Master2 上。然而,当我停止了 Master1 上的主 NameNode 时,我们期望备用 NameNode 在一段时间后能够自动转变为主(Active)状态。但是,我发现在这种情况下,备用 NameNode 并没有按预期转变为主(Active)状态。当我重新启动 Master1 上的主 NameNode 后,备用 NameNode 才成功地转变为主(Active)状态。
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。