You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装NetBeans后ZooKeeper启动失败,提示Address already in use

解决ZooKeeper启动时端口2181被占用的问题

看起来NetBeans安装后悄悄启动了占用2181端口的Java进程——这大概率是它自带的某个集成服务(比如嵌入式ZooKeeper或者相关开发组件)搞的鬼。给你几个靠谱的解决思路:

  • 先精准定位并终止占用端口的进程

    1. 先通过lsof直接获取占用2181端口的进程ID(PID):
      sudo lsof -t -i :2181
      
      这个命令会输出占用端口的进程PID列表。
    2. 查看进程详情,确认是不是NetBeans相关的:
      ps -ef | grep <获取到的PID>
      
      如果进程名称里包含netbeans或者关联组件,基本就能锁定根源了。
    3. 终止这些占用端口的进程:
      sudo kill -9 <PID>
      
      注意:一定要确认PID对应的不是你需要的其他重要进程,再执行这个命令!
    4. 再次检查端口状态:
      netstat -ant | grep :2181
      
      确认没有ESTABLISHED连接和LISTEN状态的进程后,重新启动ZooKeeper即可。
  • 修改ZooKeeper端口(不想终止NetBeans进程的话)
    如果那个占用端口的进程是你需要保留的NetBeans服务,可以给ZooKeeper换个端口:

    1. 编辑ZooKeeper的配置文件config/zookeeper.properties,找到clientPort=2181这一行,改成未被占用的端口,比如clientPort=2182。
    2. 编辑Kafka的配置文件config/server.properties,找到zookeeper.connect=localhost:2181,同步改成新端口zookeeper.connect=localhost:2182。
    3. 重启ZooKeeper和Kafka服务,两者就不会再出现端口冲突了。
  • 阻止NetBeans自动启动占用端口的服务
    为了避免下次启动NetBeans再踩坑,可以调整它的服务配置:

    1. 打开NetBeans,点击顶部菜单栏的Window -> Services,打开服务面板。
    2. 在面板里找找有没有类似ZooKeeper、Embedded Database或者其他可能占用2181端口的服务。
    3. 右键点击对应的服务,选择Properties,取消勾选“自动启动”选项,或者直接禁用该服务。

内容的提问来源于stack exchange,提问作者el323

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:36:50