1、环境介绍
操作系统:centos 7.9
zookeeper版本:apache-zookeeper-3.6.3-bin.tar.gz
zookeeper下载地址:https://zookeeper.apache.org/releases.html
jdk版本:jdk-8u291
地址规划:
zk01.wtown.com 10.99.27.11
zk02.wtown.com 10.99.27.12
zk03.wtown.com 10.99.27.13
注:zookeeper节点数应该为奇数个,以防选举master出现脑裂
2、主机设置主机名和hosts解析(3台)
3、主机关闭防火墙和selinux(3台)
4、安装jdk(3台)
https://blog.csdn.net/zyj81092211/article/details/118055068
5、创建数据目录
(1)挂载数据盘(注:生产环境中,应使用高速盘,提供zookeeper交互效率)
https://blog.csdn.net/zyj81092211/article/details/118054000
(2)创建data和log目录
mkdir -pv /data/zookeeper/{data,log}
6、解压zookeeper,移动到/usr/local/下,并重名明zookeeper(3台)
tar -xvf apache-zookeeper-3.6.3-bin.tar.gz
mv apache-zookeeper-3.6.3-bin /usr/local/zookeeper
7、zookeeper conf目录
8、修改配置文件(3台)
vi /usr/local/zookeeper/conf/zoo.cfg
添加以下参数
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
clientPort=2181
server.1=zk01.wtown.com:2888:3888
server.2=zk02.wtown.com:2888:3888
server.3=zk03.wtown.com:2888:3888
注:server点后面的123 对应myid文件中的数字
参数简介:
tickTime=2000:
zookeeper之间或与客户端之间心跳时间2秒
initLimit=10:
当已经超过 10 个心跳的时间长度后 Zookeeper 服
务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒
syncLimit=5:
标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
dataDir=/data/zookeeper/data:
数据目录
dataLogDir=/data/zookeeper/log:
事务日志目录
9、分别在三台机器上指定的数据目录中创建myid文件
27.11:
echo 1 > /data/zookeeper/data/myid
27.12:
echo 2 > /data/zookeeper/data/myid
27.13
echo 3 > /data/zookeeper/data/myid
10、设置环境变量(3台)
vi /etc/profile
添加如下:
#zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
从新加载环境变量
source /etc/profile
11、启动并查看zookeeper运行情况
zkServer.sh start
zookeeper启动日志位置:
/usr/local/zookeeper/logs
12、设置开机自启动
vi /etc/systemd/system/zookeeper.service
添加如下信息
[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
Environment=/usr/local/zookeeper
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop /usr/local/zookeeper/conf/zoo.cfg
ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart /usr/local/zookeeper/conf/zoo.cfg
WorkingDirectory=/usr/local/zookeeper
[Install]
WantedBy=multi-user.target
systemd 重载配置
systemctl daemon-reload
启动报错处理
提示是java_home问题
解决:
vi /usr/local/zookeeper/bin/zkEnv.sh
添加如下代码
JAVA_HOME="/usr/local/java"
开启并设置开机自启动
systemctl start zookeeper
systemctl enable zookeeper