文章中所提到问题为自己遇到的问题及收集他人遇到的问题的整合
问题一:
启动报错:
解决方案:
1.查看系统防火墙是否已经关闭
如果开启状态,进行关闭
2.产生的原因:只在一台节点上启动了zookeeper,其他的节点上没有启动zookeeper,会导致拒绝连接,去其他节点启动即可
3.将linux的hosts文件的127.0.0.1那一行删掉或者注释
原因:端口绑定的地址不是127.0.0.1所以不能用这个地址
问题二:
前提:使用zookeeper版本为3.5.4 beta,jdk版本为1.8以下版本
启动报错:
解决方案:
在zookeeper的配置文件运行环境中指定jdk路径
问题三:
启动报错:
解决方案:
配置jdk+zookeeper环境变量(zookeeper环境变量可以忽略)
问题四:
启动报错:
、
解决方案:
检查zoo.cfg文件中的给dataDir路径是否存在多余空格,如果存在zookeeper在读取此配置文件时会把空格也读进文件名,导致找不到对应目录,pid文件存在在指定文件夹下,所以无法找到
问题五:
启动报错:
解决方案:
可能原因是该服务器的jdk版本不正确,或是环境变量未设置好。
例如,原来的linux下已经装有jdk-1.4,然后又安装了新版本的jdk-1.6,我们按照网上教程的步骤安装好zookeeper并设置环境变量后,但是用java -version命令发现,仍然显示java-1.4,说明环境变量未配好。zookeeper读取的jdk版本仍然是旧版本的jdk-1.4。
修改jdk环境变量配置
问题六:
启动报错:
解决方案:
导致这个异常的原因通常是因为2181端口已经被其他进程占用了。
通常的做法就是检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进程停止后,再一次启动ZooKeeper即可。
也可以修改配置文件zoo.cfg,更换ZooKeeper的clientPort配置,例如,可以将其设置为2081
问题七(多问题集合):
启动报错:
解决方案:
表示的是myid这个文件不存在
进入/export/servers/data/zookeeper/目录下创建myid这个文件(不是文件夹)
解决方案:
在myid文件中输入coo.cfg配置文件配置的对应当前IP地址的myid
如果在coo.cfg配置文件配置了当前节点server.1=192.168.1.110:2888:3888那么在myid文件输入1,保存退出
解决方案:
关闭防火墙(所有节点的防火墙)
产生的原因:只在一台节点上启动了zookeeper,其他的节点上没有启动zookeeper,会导致拒绝连接,去其他节点启动即可 |