一、下载
官网地址: https://zookeeper.apache.org/releases.html
下载的文件:
二、安装
解压后的文件
1)、将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg
2)、在安装目录下面新建一个空的data文件夹和log文件夹
3)、修改zoo.cfg配置文件,将dataDir=/tmp/zookeeper修改成zookeeper安装目录所在的data文件夹,再添加一条添加数据日志的配置。
注意:dataDir和dataLogDir这两个路径的分隔符要用/,而不是\,因为windows的分隔符是/.否则会出现data和log目录中的文件出现在bin目录下。
错误的:
正确的:
zoo.cfg配置文件参数说明
tickTime 客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间
initLimit 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数
syncLimit 集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数
dataDir 用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
dataLogDir 存放事务日志的文件夹
clientPort 客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
maxClientCnxns 允许连接的客户端数目,0为不限制,通过IP来区分不同的客户端
三、启动程序
双击zkServer.cmd 启动zookeeper服务
双击zkCli.cmd 验证是否安装成功
四、启动报错
一 : 如果无法启动,可能是没有给jdk配置环境变量,因为zkServer.cmd的启动需要执行Java命令。
1、首先检查自己的防火墙是否关闭
// linux命令:
systemctl status firewalld
systemctl stop firewalld
2、检查自己是否安装了JDK。因为Zookeeper的运行需要JVM环境,如果没有安装,则不能正常启动Zookeeper。
这里可以通过 java 或 java -version命令查看
3、查看Zookeeper客户端端口2181是否被占用。如果被占用,则使用 kill 命令杀死进程。
可以使用 netstat -apn | grep 2181 或者 lsof -i:2181 命令查看
4、删除dataDir对应目录下除了 myid 以外的所有文件
二 :如果无法启动报错:java.net.ConnectException: Connection refused: no further information
1、首先检查自己的防火墙是否关闭
2、查看Zookeeper客户端端口2181是否被占用。如果被占用,则使用 kill 命令杀死进程。
可以使用 netstat -apn | grep 2181 或者 lsof -i:2181 命令查看
三 :[1079]zkServer.cmd闪退的问题
我们在双击zkServer.cmd的时候,窗口一闪而过就关闭了
排查方式:
双击 zkServer.cmd,发现dos框一闪而过,无法正确启动zookeeper。
右键编辑 zkServer.cmd
在末尾输入pause ,保存退出,
编辑zkServer.cmd文件,在末尾添加pause 。这样运行出错就不会退出,会提示错误信息,方便找到原因。
再次运行zkServer.cmd,发现dos命令行窗口静止了。
第一种情况:
现在能看到错误提示了,发现提示 Java_HOME 没有被正确设置。
此时检查自己的 JAVA_HOME设置情况,发现 JAVA_HOME是正确设置的,那是怎么回事?
右键编辑zkEnv.cmd
在这两处添加双引号,保存退出。
重新运行zkServer.cmd,OK,zkServer正常启动了!
第二种情况:
现在能看到错误提示了,发现提示 8080端口被占用
版权归原作者 IT小郭. 所有, 如有侵权,请联系我们删除。