Storm集群Supervisor部署拓扑时Nimbus连接拒绝问题求助
解决Storm Supervisor无法连接Nimbus下载拓扑代码的问题
这个问题我之前也碰到过,从你贴的日志里的Connection refused能明确看出来:Supervisor节点无法和Nimbus建立Thrift连接,这直接导致它没法从Nimbus的BlobStore下载拓扑代码执行。给你几个一步步排查的方案:
1. 先确认Nimbus服务是否正常运行
先登录到Nimbus节点,执行以下命令检查进程:
jps
看看输出里有没有nimbus进程。如果没有,重启Nimbus服务:
storm nimbus
同时可以查看Nimbus的日志(默认路径是${STORM_HOME}/logs/nimbus.log),确认启动过程中没有报错。
2. 验证Nimbus的Thrift端口是否能被Supervisor访问
Supervisor默认需要连接Nimbus的6627端口,在Supervisor节点上用以下命令测试连通性:
# 用telnet测试 telnet <你的Nimbus主机名/IP> 6627 # 或者用nc(如果安装了的话) nc -zv <你的Nimbus主机名/IP> 6627
如果测试失败,需要排查两点:
- 防火墙规则:检查Nimbus节点的防火墙是否开放了6627端口,比如用
iptables -L查看规则,必要时添加开放规则:iptables -A INPUT -p tcp --dport 6627 -j ACCEPT - 配置正确性:确认Supervisor节点的
storm.yaml里,nimbus.seeds参数是否正确指向了Nimbus的主机名或IP,不能有拼写错误。
3. 确保所有节点的Storm配置一致
Supervisor和Nimbus的storm.yaml里,以下关键参数必须完全一致:
nimbus.seeds:比如["nimbus-node-01"],所有节点要配置相同的内容nimbus.thrift.port:如果修改了默认的6627端口,所有节点的配置要匹配storm.thrift.transport:如果用了自定义传输插件,所有节点要统一(默认是org.apache.storm.security.auth.SimpleTransportPlugin)
4. 检查BlobStore相关配置(如果自定义过)
日志里提到了NimbusBlobStore,如果你没有修改过BlobStore配置,那还是回到Nimbus连接的问题上。如果用了HDFS或其他外部BlobStore,要确保Supervisor节点有访问该存储的权限,并且配置参数正确。
最后验证
当以上配置都确认无误后,重启Supervisor服务:
storm supervisor
然后查看Supervisor的日志(${STORM_HOME}/logs/supervisor.log),观察是否还有连接拒绝的错误,同时确认拓扑代码是否能正常下载执行。
内容的提问来源于stack exchange,提问作者Aniruddha
相关产品推荐
相关产品推荐

