解決方法:
1 通過cmd 查找佔用端口對應的PID(進程號)
通過cmd查詢端口,命令:netstat -ano | findstr 1099 查找佔用端口對應的PID(進程號)
# 列出所有端口占用情況
netstat -ano
# 精確找到被佔用的端口對應的PID
netstat -ano|findstr "port"
# 查看是哪個進程或程序佔用了端口
tasklist|findstr "PID"
## 殺死進程
taskkill /f /t /im xx進程
# 示例
taskkill /f /t /im System
# 示例
tasklist|findstr "4"
# 示例
netstat -ano|findstr "1099"
netstat -ano|findstr 1099
2 如果對應端口號下沒有佔用的進程,查看是否是Hyper-V保留佔用了
使用命令 netsh interface ipv4 show excludedportrange protocol=tcp, 這個是查詢windows10下面的Hyper-V的端口保留的TCP範圍,結果顯示:端口2181被Hyper-V給保留了
兩種解決方案:
1、修改端口:配置文件將zookeeper的端口改爲高位端口,比如21810 。
2、關閉Hyper-V。使用默認端口 操作如下:控制面板–程序—程序和功能—啓動或關閉windows功能,去掉對號
擴展
命令解析
命令 | 描述 |
---|---|
netstat | 顯示協議統計信息和當前TCP/IP網絡連接 |
netstat | 查看當前哪些端口正在被使用 |
findstr | 查找字符串,類似Linux下的grep命令 |
tasklist | 顯示運行在本地或遠程計算機上的所有任務的應用程序和服務列表 |
taskkill | 結束一個或多個任務或進程 |
taskkill /f | 指定強制終止的過程(我覺得是進程) |
taskkill /t | 指定那個終止與父進程一起的所有子進程,常被認爲是“樹終止” |
taskkill /im | imageName 指定將被終止的過程的圖像名稱 |