zookeeper集群部署 精简版本
原创
©著作权归作者所有:来自51CTO博客作者gblfy的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
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日志目录
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

如果想设置为域名,只需要在hosts文件中,配置ip和域名对应关系即可
192.168.43.32 ly-01
192.168.43.151 ly-02
192.168.43.222 ly-03

保存退出
验证域名可以正常解析ping一下域名即可
ping ly-01
ping ly-02
ping ly-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

登录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-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. 启动脚本测试:

停止zookeeper并查看zk运行状态

注:此脚本是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"