首页 文章

连接时,Zookeeper java.net.NoRouteToHostException

提问于
浏览
3

这里为数据转储提前道歉 . 我有两台安装了Zookeeper的服务器 . 我想把它们作为一个整体来运行 . 这是我的zoo.cfg中的两个 .

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
server.1=solr1:2888:3888
server.2=solr2:2888:3888
clientPort=2181

两台服务器都有一个myid文件 . 它们的名字在/ etc / hosts文件中,所以它们绝对可以看到对方 . 当我使用zkServer.sh启动其中任何一个时,它表示zookeeper已启动 . 但是,当我运行“zkServer.sh status”时,我看到以下消息:

Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

但是zookeeper java进程似乎正在运行,并且使用netstat显示tcp端口3888和2181正在侦听 . 当我尝试使用“sh zkCli.sh -server localhost:2181”连接到服务器时,我看到一堆环境信息,然后是一大堆这些日志条目:

2014-02-03 15:39:00,623 [myid:] - INFO [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost.localdomain/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2014-02-03 15:39:00,646 [myid:] - INFO [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@849] - Socket            connection established to localhost.localdomain/127.0.0.1:2181, initiating session
JLine support is enable
2014-02-03 15:39:00,662 [myid:] - INFO  [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@1085] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect

如果我尝试连接到其他服务器(sh zkCli.sh -server solr1:2181),我会看到一堆这样的:

2014-02-03 15:40:42,390 [myid:] - WARN  [main-SendThread(solr1:2181):ClientCnxn$SendThread@1089] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.NoRouteToHostException: No route to host

Zookeeper似乎正在运行,尽管zkServer.sh状态另有说法 . 但有没有人对我的连接问题有任何见解?操作系统是RHEL 6.4,64位 .

3 回答

  • 0

    啊哈,我现在解决了同样的问题,操作系统是Centos7 . 我检查所有配置文件但无法帮助 . 最后,我修改了iptable来添加这样的端口:2181,2888,3888,然后重新启动zookeeper服务器,它的工作原理 . 其中一个cmd就像:firewall-cmd --zone = public --add-port = 2181 / udp --add-port = 2181 / tcp --permanent然后reloat:firewall-cmd --reload当然,你可以关闭iptables并禁用iptables加载启动操作系统来实现这一目的 . 另外,你应该检查数据路径中是否有“myid”文件:dataDir = / opt / zookeeper / data,其所有者应该是“username:groupUsername”;愿它也能帮到你 .

  • 5

    我可能不是zookeeper的专家,但是我已经在RedHat上的4个机器集群上以整体模式安装了zookeeper . 我有同样的问题我厌倦了stackoverflow上的所有可用的东西,尝试了我所做的一切关闭所有机器上的iptables和防火墙但仍然有错误,经过一些想法我累了启用密码少ssh所有机器和这解决了我的问题,现在我的动物园饲养员已经在所有4台机器上运行了

  • -4

    禁用iptables后问题解决了

相关问题