1、啓動zookeeper,但是報錯,端口被佔用;
2020-04-02 09:56:21,701 [myid:] - ERROR [main:ZooKeeperServerMain@90] - Unexpected exception, exiting abnormally java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:676)
at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:158)
at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain:112)
at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:67)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:140)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90)
2020-04-02 09:56:21,707 [myid:] - INFO [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
2020-04-02 09:56:21,708 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 1Unexpected
2、通過cmd查詢端口,命令:netstat -ano | findstr 2181 發現沒有被佔用
3、看了很多方法都不行,後來才發現。使用命令 netsh interface ipv4 show excludedportrange protocol=tcp
, 這個是查詢windows10下面的Hyper-V
的端口保留的TCP範圍,結果顯示:端口2181
被Hyper-V
給保留了
兩種解決方案:
1、修改端口:配置文件將zookeeper
的端口改爲高位端口,比如21810 。
2、關閉Hyper-V。使用默認端口 操作如下:控制面板--程序---程序和功能---啓動或關閉windows功能,去掉對號