原因1
在使用sshfence的情况下,没有linux没有安装 psmisc
原因2
因为linux系统之间需要免密登陆 ,在dsa加密情况下,正常。但在rsa下,会出错。
原因是因为:
原加密代码:ssh-keygen -t rsa 这种不支持,所以不能切换
修改后:ssh-keygen -t rsa -m PEM 这种可以,(亲测)
2021-11-02 10:18:20,313 WARN org.apache.hadoop.ha.SshFenceByTcpPort: Unable to create SSH session com.jcraft.jsch.JSchException: invalid privatekey: [B@433d45bc 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:547) at org.apache.hadoop.ha.ZKFailoverController.fenceOldActive(ZKFailoverController.java:520) at org.apache.hadoop.ha.ZKFailoverController.access$1100(ZKFailoverController.java:62) at org.apache.hadoop.ha.ZKFailoverController$ElectorCallbacks.fenceOldActive(ZKFailoverController.java:943) at org.apache.hadoop.ha.ActiveStandbyElector.fenceOldActive(ActiveStandbyElector.java:991) at org.apache.hadoop.ha.ActiveStandbyElector.becomeActive(ActiveStandbyElector.java:888) at org.apache.hadoop.ha.ActiveStandbyElector.processResult(ActiveStandbyElector.java:473) at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:610) at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:508) 2021-11-02 10:18:20,314 WARN org.apache.hadoop.ha.NodeFencer: Fencing method org.apache.hadoop.ha.SshFenceByTcpPort(null) was unsuccessful. 2021-11-02 10:18:20,314 ERROR org.apache.hadoop.ha.NodeFencer: Unable to fence service by any configured method. 2021-11-02 10:18:20,314 WARN org.apache.hadoop.ha.ActiveStandbyElector: Exception handling the winning of election java.lang.RuntimeException: Unable to fence NameNode at hdp-datanode-1/10.211.55.40:8020 at org.apache.hadoop.ha.ZKFailoverController.doFence(ZKFailoverController.java:548) at org.apache.hadoop.ha.ZKFailoverController.fenceOldActive(ZKFailoverController.java:520) at org.apache.hadoop.ha.ZKFailoverController.access$1100(ZKFailoverController.java:62) at org.apache.hadoop.ha.ZKFailoverController$ElectorCallbacks.fenceOldActive(ZKFailoverController.java:943) at org.apache.hadoop.ha.ActiveStandbyElector.fenceOldActive(ActiveStandbyElector.java:991) at org.apache.hadoop.ha.ActiveStandbyElector.becomeActive(ActiveStandbyElector.java:888) at org.apache.hadoop.ha.ActiveStandbyElector.processResult(ActiveStandbyElector.java:473) at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:610) at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:508)