文章目录

1. zookeeper下载

wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz

2. 解压

tar zxvf apache-zookeeper-3.5.7-bin.tar.gz

3. 重命名

mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

4. 创建dataDir目录和dataLogDir日志目录

cd /app/zookeeper-3.5.7/

5. 更新备份配置文件

cd /app/zookeeper-3.5.7/conf/
cp zoo_sample.cfg zoo.cfg

6. 添加数据目录和日志文件目录

cd /app/zookeeper-3.5.7/conf/
vim zoo.cfg
#添加下面2行(删除原来的dataDir第12行)
dataDir=/app/zookeeper-3.5.7/dataDir
dataLogDir=/app/zookeeper-3.5.7/dataLogDir

7. 添加集群信息

有2种方式 任选其一即可

7.1. ip配置 方式01

在后面加上集群的机器:2888是leader和follower通讯端口,3888是投票的

server.0=192.168.43.32:2888:3888
server.1=192.168.43.151:2888:3888
server.2=192.168.43.222:2888:3888

7.2. 域名配置 方式02(推荐使用)

server.0=ly-01:2888:3888
server.1=ly-02:2888:3888
server.2=ly-03:2888:3888

zookeeper集群部署 精简版本_bash


如果想设置为域名,只需要在hosts文件中,配置ip和域名对应关系即可

192.168.43.32  ly-01
192.168.43.151 ly-02
192.168.43.222 ly-03

zookeeper集群部署 精简版本_bash_02


保存退出

验证域名可以正常解析ping一下域名即可

ping ly-01
ping ly-02
ping ly-03

zookeeper集群部署 精简版本_zookeeper_03

8. 在服务器上分别创建myid,各自写入内容0,1, 2

cd /app/zookeeper-3.5.7/
#下面在服务器上分别创建
echo 0 > dataDir/myid
echo 1 > dataDir/myid
echo 2 > dataDir/myid

9. 同步节点

把ly-01上的zk配置,通过scp命令同步到ly-02,ly-03其他两个节点

scp -r zookeeper-3.5.7/ root@ly-02:/app
scp -r zookeeper-3.5.7/ root@ly-03:/app

zookeeper集群部署 精简版本_bash_04


登录ly-02服务器 修改myid文件中的内容(上面已说明)

#进入zookeeper目录的
echo 1 > dataDir/myid

登录ly-03服务器 修改myid文件中的内容(上面已说明)

#进入zookeeper目录的
echo 2 > dataDir/myid

10. 集群脚本制作

只做启动和查看启动状态脚本

#!/bin/bash
for host in ly-01 ly-02 ly-03
do
echo "${host}:$1ing....."
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh $1"
done

sleep 2
for host in ly-01 ly-02 ly-03
do
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh status"

为了免密登录需要执行下面几条命令

#执行以下命令一直回车
ssh-keygen
ssh-copy-id ly-01
ssh-copy-id ly-02
ssh-copy-id ly-03

11. 关闭防火墙

#查看防火墙运行状态
systemctl status firewalld.service
#关闭防火墙
systemctl stop firewalld.service

12. 运行异常

删除dataDir目录中的version文件夹

13. 启动脚本测试:

./zkmanage.sh start

zookeeper集群部署 精简版本_服务器_05


停止zookeeper并查看zk运行状态

./zkmanage.sh stop

zookeeper集群部署 精简版本_zookeeper_06


注:此脚本是2个命令的结合版本,启动zk或者停止zk后,睡眠2秒钟会自动查看zk的运行状态

zk集群启动脚本

#!/bin/bash
for host in ly-01 ly-02 ly-03
do
echo "${host}:$1ing....."
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh start"

zk停止脚本

#!/bin/bash
for host in ly-01 ly-02 ly-03
do
echo "${host}:$1ing....."
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh stop"

查看zk运行状态脚本

#!/bin/bash
for host in ly-01 ly-02 ly-03
do
echo "${host}:$1ing....."
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh status"

zk集群动态脚本

#zk启动++查看运行状态
./zkmanage.sh start
#zk停止 +查看运行状态
./zkmanage.sh stop
#!/bin/bash
for host in ly-01 ly-02 ly-03
do
echo "${host}:$1ing....."
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh $1"
done

sleep 2
for host in ly-01 ly-02 ly-03
do
ssh $host "source /etc/profile;/app/zookeeper-3.5.7/bin/zkServer.sh status"