天天看点

BindException: Cannot assign requested address (Bind failed)解决办法

1、报错

[root@node1 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 
[root@node1 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
[root@node1 ~]#
           

查看日志

-- ::, [myid:] - ERROR [node2/::QuorumCnxManager$Listener@763] - Exception while listening
java.net.BindException: Cannot assign requested address (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:)
        at java.net.ServerSocket.bind(ServerSocket.java:)
        at java.net.ServerSocket.bind(ServerSocket.java:)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:)
           

2、解决办法

百度了

BindException: Cannot assign requested address (Bind failed)

,网友们提供的方法不能解决我的遇到的问题。

最后意外发现时我的配置文件zoo.cfg配置错误:

server.1=node2::
server.2=node2::
server.3=node3::
           

很显然,将

server.1=node2:2888:3888

修改为

server.1=node1:2888:3888

即可。

重启ZK,问题解决。