Linux的zookeeper集群常见问题及解决方案

时间:2023-01-12 08:27:49

文章中所提到问题为自己遇到的问题及收集他人遇到的问题的整合

问题一:

启动报错:

Linux的zookeeper集群常见问题及解决方案

解决方案:

1.查看系统防火墙是否已经关闭

Linux的zookeeper集群常见问题及解决方案

如果开启状态,进行关闭

Linux的zookeeper集群常见问题及解决方案

2.产生的原因:只在一台节点上启动了zookeeper,其他的节点上没有启动zookeeper,会导致拒绝连接,去其他节点启动即可

3.将linux的hosts文件的127.0.0.1那一行删掉或者注释

原因:端口绑定的地址不是127.0.0.1所以不能用这个地址

Linux的zookeeper集群常见问题及解决方案

Linux的zookeeper集群常见问题及解决方案

问题二:

前提:使用zookeeper版本为3.5.4 beta,jdk版本为1.8以下版本

启动报错:

解决方案:

在zookeeper的配置文件运行环境中指定jdk路径

Linux的zookeeper集群常见问题及解决方案

Linux的zookeeper集群常见问题及解决方案

Linux的zookeeper集群常见问题及解决方案

问题三:

启动报错:

解决方案:

配置jdk+zookeeper环境变量(zookeeper环境变量可以忽略)

Linux的zookeeper集群常见问题及解决方案

Linux的zookeeper集群常见问题及解决方案

问题四:

启动报错:

Linux的zookeeper集群常见问题及解决方案

解决方案:

检查zoo.cfg文件中的给dataDir路径是否存在多余空格,如果存在zookeeper在读取此配置文件时会把空格也读进文件名,导致找不到对应目录,pid文件存在在指定文件夹下,所以无法找到

问题五:

启动报错:

Linux的zookeeper集群常见问题及解决方案

解决方案:

可能原因是该服务器的jdk版本不正确,或是环境变量未设置好。

例如,原来的linux下已经装有jdk-1.4,然后又安装了新版本的jdk-1.6,我们按照网上教程的步骤安装好zookeeper并设置环境变量后,但是用java -version命令发现,仍然显示java-1.4,说明环境变量未配好。zookeeper读取的jdk版本仍然是旧版本的jdk-1.4。

修改jdk环境变量配置

Linux的zookeeper集群常见问题及解决方案

问题六:

启动报错:

Linux的zookeeper集群常见问题及解决方案

解决方案:

导致这个异常的原因通常是因为2181端口已经被其他进程占用了。

通常的做法就是检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进程停止后,再一次启动ZooKeeper即可。

Linux的zookeeper集群常见问题及解决方案

也可以修改配置文件zoo.cfg,更换ZooKeeper的clientPort配置,例如,可以将其设置为2081

Linux的zookeeper集群常见问题及解决方案

问题七(多问题集合):

启动报错:

Linux的zookeeper集群常见问题及解决方案

解决方案:

表示的是myid这个文件不存在
进入/export/servers/data/zookeeper/目录下创建myid这个文件(不是文件夹)
Linux的zookeeper集群常见问题及解决方案

解决方案:

在myid文件中输入coo.cfg配置文件配置的对应当前IP地址的myid
如果在coo.cfg配置文件配置了当前节点server.1=192.168.1.110:2888:3888那么在myid文件输入1,保存退出
Linux的zookeeper集群常见问题及解决方案

解决方案:

关闭防火墙(所有节点的防火墙)

产生的原因:只在一台节点上启动了zookeeper,其他的节点上没有启动zookeeper,会导致拒绝连接,去其他节点启动即可