I have 3 servers on aws. each with open jdk 7 and zookeeper 3.4.6 all have unique elastic ip. every conf / zoo.cfg has
- clientPort = 2181
- server.1 = server1: 2888: 3888
- server.2 = server2: 2888: 3888
- server.3 = server3: 2888: 3888
then I launched it with launch. /zkServer.sh (says START) and zookeeper.out says
2015-01-14 09:27:55,919 [myid:1] - INFO [Thread-1: QuorumCnxManager$Listener@504 ] - My election bind port: /server1ipaddress:3888 2015-01-14 09:27:55,920 [myid:1] - ERROR [/server1ipaddress:3888: QuorumCnxManager$Listener@517 ] - Exception while listening java.net.BindException: Cannot assign requested address at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) at java.net.ServerSocket.bind(ServerSocket.java:376) at java.net.ServerSocket.bind(ServerSocket.java:330) at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:507)
Therefore, he cannot open the port. I eventually opened all the security ports to rule this out.
- telnet in 2181 with ruok gets imok.
- telnet in 2888 cannot connect. connection rejected.
- telnet in 3888 cannot connect. connection rejected.
netstat shows that nothing blocks 2888 and 3888
I even tried this with all 3 servers running zookeeper. what's happening? how can i open these ports for use.
source share