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

Docker外运行Storm Supervisor,Nimbus容器化部署连接失败求助

解决本地Supervisor连接Docker中ZooKeeper失败的问题

核心问题分析

日志中的Connection refused明确说明本地Supervisor无法连接到ZooKeeper服务,虽然UI能正常访问localhost:9090,但ZooKeeper的2181端口连通性故障是导致Supervisor启动失败的关键原因。

具体排查与修复步骤

1. 确认Docker Compose中ZooKeeper的端口映射配置

打开你的docker-compose.yml,检查ZooKeeper服务的端口映射和监听配置是否正确:

services:
  zookeeper:
    image: zookeeper:3.8
    ports:
      - "2181:2181"  # 必须保证本地2181端口映射到容器内的2181端口
    environment:
      ZOO_LISTEN_ALL_IPV6: "true"  # 确保ZK监听所有网络地址,而非仅容器内部

若配置缺失或错误,修改后重启ZK容器:

docker-compose up -d zookeeper

2. 验证本地到ZK端口的连通性

在本地终端执行命令测试2181端口是否可达:

nc -zv localhost 2181
# 或使用telnet命令
telnet localhost 2181

若返回连接失败,优先排查ZK容器是否正常启动、端口映射是否生效。

3. 检查ZK容器的运行状态与日志

查看ZK容器是否处于正常运行状态:

docker-compose ps zookeeper

若状态不为Up,查看容器日志定位启动故障:

docker-compose logs zookeeper

确保日志中出现binding to port 0.0.0.0/0.0.0.0:2181类信息,说明ZK已正确监听所有地址。

4. 修正本地Storm的storm.yaml配置

  • ZooKeeper地址配置:确认配置为localhost(端口映射正确时),若修改过ZK端口,需补充端口配置:
    zookeeper.servers:
      - "localhost"
    zookeeper.port: 2181  # 若映射了其他端口,替换为对应数值
    
  • Nimbus地址配置:由于Nimbus在Docker容器中,本地Supervisor不能直接用localhost访问,需替换为容器IP或确保Nimbus的6627端口已映射到本地:
    nimbus.seeds:
      - "127.0.0.1"  # 若Nimbus的6627端口已映射到本地,可使用该值;否则用容器IP
    nimbus.thrift.port: 6627  # 对应容器映射的端口
    
    可通过docker inspect <nimbus容器名称>获取容器IP。

5. 重启本地Supervisor

修改配置后,终止当前Supervisor进程,重新执行启动命令:

storm supervisor

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:50:43