本文为linux centOS 7环境的安装与部署
1、安装
从官网镜像中下载 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.4-beta/
通过以下命令,解压安装包
tar -zxvf zookeeper-3.5.4-beta.tar.gz
2、目录结构:
- bin目录
zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。 - conf目录
配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。 - lib
zk依赖的包。 - contrib目录
一些用于操作zk的工具包。 - recipes目录
zk某些用法的代码示例
3、添加zoo.cfg文件,文件基本信息
复制zoo_sample.cfg ,否则运行会报错 ,需要zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
配置文件信息
- initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。 - syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。 - tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。 - dataDir
其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
4、运行命令
进入bin目录
sh zkServer.sh start 启动
sh zkServer.sh status 查看状态
sh zkServer.sh stop 关闭
sh zkCli.sh 进入客户端
sh zkCli.sh -server 192.168.11.1 连接其他服务器
5、搭建集群环境
建议2n+1台zookeeper,我演示的3台
5.1配置信息
在 datadir目录下创建myid 文件 内容分别为1 、2 、 3 ,myid不能重复
在zoo.cfg文件最后添加 server.myid=host:port1:port2 ,端口 :2888 数据同步 3888选举
其中myid为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
扫描二维码关注公众号,回复:
4412963 查看本文章
server.1=192.168.157.157:2888:3888
server.2=192.168.157.128:2888:3888
server.3=192.168.157.129:2888:3888
5.2启动
启动3台zookeeper
sh zkServer.sh start
进入log目录下 使用tail -f 查看日志
会遇到报错:
启动时会报错:java.net.NoRouteToHostException: 没有到主机的路由
解决方法:systemctl stop firewalld.service 关闭防火墙 / 或者打开端口