win10系统启动zookeeper端口2181被占用原创
金蝶云社区-cosmicstudio
cosmicstudio
2人赞赏了该文章 2,839次浏览 未经作者许可,禁止转载编辑于2022年08月30日 17:38:14

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

image.png

2、通过cmd查询端口,命令:netstat -ano | findstr 2181    发现没有被占用

image.png

3、看了很多方法都不行,后来才发现。使用命令 netsh interface ipv4 show excludedportrange protocol=tcp,   这个是查询windows10下面的Hyper-V的端口保留的TCP范围,结果显示:端口2181被Hyper-V给保留了


image.png

两种解决方案:

1、修改端口:配置文件将zookeeper的端口改为高位端口,比如21810  。

2、关闭Hyper-V。使用默认端口   操作如下:控制面板--程序---程序和功能---启动或关闭windows功能,去掉对号

image.png



第二种解决办法

先以管理员身份打开 powershell,然后设置 tcp ipv4 的动态端口范围为 49152 开始的 16384 个端口,也就是 49152~65535

netsh int ipv4 set dynamicport tcp start=49152 num=16384



然后重启电脑。Hyper-V 就会从 49152~65535 范围内保留一部分端口,6942~6991 和 9090 不受影响。


查看一下此时的动态端口范围:

netsh int ipv4 show dynamicport tcp


协议 tcp 动态端口范围

---------------------------------

启动端口        : 49152

端口数          : 16384

-----------------------------------


参考资料:

Win10 各种端口占用问题的解决办法

https://blog.51cto.com/u_15127578/4207165


赞 2