CentOS 7/8 部署Zookeeper集群
首先要安装JDK,参考 https://www.cnblogs.com/dotqin/p/13560419.html
环境说明:三台百度云服务器,内网IP分别为: 192.168.32.36、192.168.32.37、192.168.32.38, 不开放公网IP访问
分别在三台服务器上执行以下操作:
1.创建目录及下载解压
mkdir /usr/local/zookeeper cd /usr/local/zookeeper/ wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz mv apache-zookeeper-3.6.1-bin zookeeper-3.6.1
2.设置环境变量
vim /etc/profile # 在文件最后添加以下内容 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.6.1 export PATH=$ZOOKEEPER_HOME/bin:$PATH # 使环境变量生效 source /etc/profile
3.设置zkEnv.sh
vim /usr/local/zookeeper/zookeeper-3.6.1/bin/zkEnv.sh # 在ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"上面添加JAVA_HOME设置 为了之后添加到systemctl服务管理 JAVA_HOME=/usr/local/java/jdk1.8.0_261
4.创建目录及myid文件
mkdir -p /usr/local/zookeeper/data mkdir -p /usr/local/zookeeper/log # 在/usr/local/zookeeper/data下建一个myid文件并写入一个数值比如0做为服务器编号,这里三台服务器分别对应 0 1 2
echo 0 > /usr/local/zookeeper/data/myid
5.编辑配置文件
cd /usr/local/zookeeper/zookeeper-3.6.1/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg # 设置以下内容(三台一样) tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/log clientPort=2181
# 以及集群配置(三台一样) server.0=192.168.32.36:2888:3888 server.1=192.168.32.37:2888:3888 server.2=192.168.32.38:2888:3888
# 集群配置可以抽象出一个公式,即server.A=B:C:D,其中A是一个数字,代表服务器的编号,就是前面设置的myid文件中的值,集群中每台服务器的编号必需唯一;B代表服务器的IP地址,C表示服务器与集群中的leader服务器交换信息的端口;D表示选举时服务器之间互相通信的端口。
6.添加到服务管理
vim /usr/lib/systemd/system/zookeeper.service # 添加以下内容 [Unit] Description=zookeeper-3.6.1 After=syslog.target network.target [Service]
Restart=always
RestartSec=1 Type=forking TimeoutSec=120 User=root ExecStart=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh start ExecStop=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh stop ExecReload=/usr/local/zookeeper/zookeeper-3.6.1/bin/zkServer.sh restart Restart=always [Install] WantedBy=multi-user.target
7.设置服务生效及开机自启动
systemctl daemon-reload
systemctl enable zookeeper.service
8.启动zookeeper
systemctl start zookeeper
systemctl status zookeeper