Zookeeper_Error contacting service. It is probably not running.解决方式汇总

使用命令zkServer.sh status查看zookeeper各节点状态的时候出现Error contacting service. It is probably not running.的错误

查看zookeeper.out见有以下WARN

Cannot open channel to 101 at election address slave01/*.*.*.*:3888
java.net.SocketTimeoutException: connect timed out

解决方法:

1.确保zookeeper安装目录下的conf下的zoo.cfg配置了如下信息

server.100=master:2888:3888
server.101=slave01:2888:3888
server.102=slave02:2888:3888

2.确保zoo.cfg文件配置的dataDir目录下有myid文件并且内容为该机id,如果像上面一样配置了三台服务器id分别为100,101,102则每台服务器的myid文件中写入各自的编号。

3.上面两步都没错之后发现错误还是没有消失,检查/etc/hosts文件中自己的主机名是否解析为127.0.0.1,或者如果是阿里云的ECS的话有默认自己的主机名解析为内网地址,如果你将自己的主机名改成了解析为外网地址,那么zookeeper将无法在zoo.cfg文件中没有0.0.0.0的情况下启动。

方式一:

将/etc/hosts/中的自己的主机名解析成内网地址

方式二:

修改每台服务器中的zoo.cfg配置信息

然后重启zookeeper

master

server.100=0.0.0.0:2888:3888
server.101=slave01:2888:3888
server.102=slave02:2888:3888

slave01

server.100=master:2888:3888
server.101=0.0.0.0:2888:3888
server.102=slave02:2888:3888

slave02

server.100=master:2888:3888
server.101=slave01:2888:3888
server.102=0.0.0.0:2888:3888

然后重启zookeeper

到了这里如果还是没解决错误,可以尝试下面几种方式

1.关闭防火墙

2.如果是ECS则去控制台添加安全组规则开放zookeeper相关的端口

3.删除dataDir目录下的zookeeper_server.pid文件然后重启zk

注意:因为每台服务骑上的zkServer服务都是有先后顺序启动的,最先启动的那台服务器肯定会报Cannot open channel to 101 at election address slave01/*.*.*.*:3888的错误,因为其他服务器上还没有启动zkServer,所以看最后一台服务器的日期里没有错误就好了。

参考网址

https://stackoverflow.com/questions/30940981/zookeeper-error-cannot-open-channel-to-x-at-election-address

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值