参考:https://www.cnblogs.com/zhiyouwu/p/11546097.html,https://www.cnblogs.com/architectforest/p/12540013.html
zk下载地址:https://downloads.apache.org/zookeeper
本文使用各种软件版本
jdk:11
zookeeper: 3.5.8
centos: 8
vmware:15.5.1
1,准备工作
安装jdk,并配置环境变量
下载zk的安装包到服务器,下载稳定版,带bin是安装包,不带bin是源码包


image-20200530214936246
2,安装
2.1 解压
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
2.2 进入到解压的目录,看一下内容

image-20200530220853456
2.3 进入conf目录,将 zoo_sample.cfg 复制一份并命名为 zoo.cfg
cp zoo_sample.cfg zoo.cfg

image-20200530221050913
2.4 编辑zoo.cfg,将dataDir的值修改为实际数据存储的位置,若实际位置还没有文件夹需要先创建文件夹
vi zoo.cfg

image-20200530221313232
2.5 启动zookeeper(可以不执行,直接到3)
在zookeeper目录下的bin文件夹中,使用以下命令启动zookeeper:
./zkServer.sh start
2.6 检查zookeeper启动情况
我们可以使用以下命令查看zookeeper的启动状态:
./zkServer.sh status
除此之外,我们也可以通过查看zookeeper的进程来判断其是否启动成功!
ps -ef | grep zookeeper
3 将zookeeper作为一个服务
3.1 进入 /etc/init.d 目录
3.2 创建文件zookeeper,并添加脚本,ZK_PATH为zookeeper安装位置
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
ZK_PATH=/usr/zookeeper
export JAVA_HOME=/usr/java/jdk-11.0.7
case $1 in
start) sh $ZK_PATH/bin/zkServer.sh start;;
stop) sh $ZK_PATH/bin/zkServer.sh stop;;
status) sh $ZK_PATH/bin/zkServer.sh status;;
restart) sh $ZK_PATH/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
3.3 保存脚本之后,执行以下指令将其注册为服务
chkconfig --add zookeeper
3.4 测试其是否生效,使用命令启动(若服务已启动需要先停止),注意需要修改创建的zookeeper服务权限
service zookeeper start
chmod +x zookeeper
service zookeeper status

image-20200530222758110
注:上图报的没有文件或目录,但是实际上有,是因为我在Windows上创建的zookeeper这个文件,需要使用dos2unix filename转换一下
dos2unix zookeeper

image-20200530223023884
注:启动前,检查bin目录下的.sh文件是否有执行权限,没有就加上执行权限

image-20200531180714801
至此单机安装已完成,以下为功能增强,可根据实际情况进行配置
3.5 关闭zookeeper内置的管理器
zookeeper内置有一个web管理器,默认使用8080端口
在配置文件zoo.cfg中添加如下一行:
admin.enableServer=false
3.6 配置zookeeper的日志目录
在zoo.cfg中定义日志的路径
dataLogDir=/usr/zookeeper/dataLog
4 配置集群
4.1 zoo.cfg文件添加配置,server.A=B:C:D
其中A是一个数字,表示这个是第几号服务器,与myid文件内容一致
B是这个服务器的IP地址,
C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用的端口
样例如下:
server.1=192.168.134.131:2888:3888
server.2=192.168.134.132:2888:3888
server.3=192.168.134.133:2888:3888
4.2 data目录下增加myid文件,文件内容与zoo.cfg中序号一致

image-20200531180101083
4.3 配置完成后,复制虚拟机文件,需要几台服务器就粘贴几个
4.4 分别启动虚拟机,修改对应的myid文件内容,启动zookeeper
4.5 查看zookeeper状态
service zookeeper status