Apache Druid启动内置ZooKeeper报错2181端口被占用,修改配置不生效如何解决
问题核心原因
你使用的./bin/start-micro-quickstart是Druid单节点测试场景的专属启动脚本,默认会自动启动内置的ZooKeeper实例,你之前修改通用conf目录下的配置未生效,是因为该脚本默认读取conf/druid/single-server/micro-quickstart/路径下的专属配置,且仅修改ZooKeeper监听端口不够,还需要同步修改Druid自身连接ZooKeeper的地址配置。
解决方案(优先推荐方案1,资源占用更低、对接配置更简单)
方案1:复用Kafka已启动的ZooKeeper实例
直接共用Kafka已经启动的2181端口ZooKeeper,不需要额外启动Druid内置ZK,从根源避免端口冲突:
- 进入micro-quickstart专属配置目录:
cd conf/druid/single-server/micro-quickstart/ - 编辑
common.runtime.properties文件,找到druid.zk.service.host配置项,确认值为localhost:2181(和你Kafka启动的ZK端口一致即可) - 启动Druid时添加跳过内置ZK的参数:
./bin/start-micro-quickstart --no-zookeeper
方案2:修改Druid内置ZooKeeper的监听端口
如果你需要单独运行Druid的内置ZK实例,按以下步骤修改:
- 进入内置ZK的配置目录:
cd conf/druid/single-server/micro-quickstart/zookeeper/ - 编辑当前目录下的
zoo.cfg,将clientPort=2181修改为未被占用的端口,例如clientPort=2080 - 回到上层配置目录,编辑
common.runtime.properties文件,将druid.zk.service.host的值修改为localhost:2080(和上一步设置的端口保持一致) - 正常执行启动命令即可:
./bin/start-micro-quickstart
校验方法
启动完成后可以执行jps命令查看进程,Druid所有节点进程正常运行无退出即代表配置生效。
内容的提问来源于stack exchange,提问作者Handri Mauludin Maulana
相关产品推荐
相关产品推荐

