解决centos启动zookeeper集群,但是状态显示报错:Error contacting service. It is probably not running 与连接超时,连接被拒绝问题

安装zookeeper-3.4.10的时候,启动正常没报错,但bin/zkServer.sh status查看状态的时候却出现错误,如下:

 这些都是我之前出现的问题,刚开始我出现的问题是连接超时,后来就变成了连接被拒绝  总之检查下jdk;zoo.cfg 还有环境变量:etc/profile  修改后不要忘了 source /etc/profile  ;server.1等 这里的主机名 还有跟1对应一样的myid都要检查好,我当时都检查没问题,后来重新搞得jdk 又整了防火墙重新开关,又整了那个文件夹权限,最后没法救自己瞎捉摸来回杀那是那三台主机关于zookeeper的进程 杀完再启动zookeeper ,一直重复 最后才好 。咱也不知道啥原因,杀进程杀了好几次,文末我有个脚本你们可以最后看看

 

可能有以下几个原因:

第一,zoo.cfg文件配置出错:dataLogDir指定的目录未被创建;

第二,myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应

第三,防火墙未关闭;

第四,2181端口被占用;

第五,zoo.cfg文件中主机名出错;

第六,hosts文件中,本机的主机名有两个对应,只需保留主机名和ip地址的映射

zookeeper启动三台主机要都启动


查看zookeeper.out分析原因(在zookeeper-3.4.10目录下)

  • 打开日志 zookeeper.out 查看错误信息,根据错误信息进行百度。
[root@zly1 zookeeper-3.4.10]# vim zookeeper.out

都要root权限

分析思考一:myid 的序号是否正确对应 zoo.cfg中设置的server.*(zoo.cfg配置文件的问题)

zoo.cfg文件中主机名出错————该文件查看多次,没有什么问题。

想必大家都是跟着教程做的 ,这方面的问题不大可能出问题

大家还是检查一下myid是否错误

分析思考二 :防火墙问题

建议大家还是开启下防火墙,再关闭防火墙

firewall防火墙开启

systemctl start firewalld.service

firewall防火墙关闭

systemctl stop firewalld.service

注意:是关闭firewalld.service

分析思考三:java环境问题

检查下java环境

java -version

java

实在不行重装一下jdk,再重新配置下jdk环境 

vim  /etc/profile

 分析思考四:排查端口占用

netstat -apn | grep 2181   #默认2181端口为服务端提供端口

我首先是用 jps 查看了一下我启动的zookeeper运行的线程号是多少,发现当前2181端口也就是我的这个zookeeper再使用而已。但保险起见,我还是kill了一次,然后重新打开

备注:若集群未启动 则不应该有端口占用

kill -9 pid                #pid为占用端口的进程id号

 

 分析思考五:

删除节点残留信息(三台主机都操作)

rm -rf version-2/ zookeeper_server.pid

 

 分析思考六:提高zookeeper权限

chmod -R 777 zookeeper-3.4.10

 分析思考七:杀死进程

查看每台主机zookeeper的进程

查看命令:

jps

杀掉对应的进程,每台都操作,杀完之后每台都启动zookeeper,最后查看状态

bin/zkServer.sh start

bin/zkServer.sh status 

bin/zkServer.sh restart      #重新启动 ,这个我用了几次一直显示没有那个进程,这时候你就看看是不是这台主机的原因  我主要用的还是上面两个命令

如果三台进程杀完并且启动完,但是查看状态依然报错,那就多杀它几次,我就是这样,杀了4,5次才好

启动zookeeper集群和查看状态脚本

#!/bin/bash
echo "***********正在启动zookeeper集群************ "
ssh root@zly1 source /etc/profile;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
ssh root@zly2 source /etc/profile;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
ssh root@zly3 source /etc/profile;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
echo "* * * * * * *查看是否启动成功及状态信息* * * * * * * * * * "
echo "* * * * * * * * * localzly查看 * * * * * * * * * *"
ssh root@zly1 "source /etc/profile;jps;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status"
echo "* * * * * * * * * slave1查看 * * * * * * * * * * *"
ssh root@zly2 "source /etc/profile;jps;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status"
echo "* * * * * * * * * slave3查看 * * * * * * * * * * *"
ssh root@zly3 "source /etc/profile;jps;/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status"

大家如果哪个有效的话可以来个回访,如果谁有问题大家可以一起探讨,总之就是来回琢磨。

猜你喜欢

转载自blog.csdn.net/q1246192888/article/details/114700497