linux单机部署zk集群

1、环境

系统:CentOS Linux release 7.6.1810

jdk:java version "1.8.0_141"

zk:apache-zookeeper-3.6.0

部署目录:/opt/app

2、部署

安装zk

# 创建实例目录
mkdir -p /opt/app/zookeeper/{zk1,zk2,zk3}
cd /opt/app/zookeeper/zk1
# 下载zk
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
# 解压
tar -xf apache-zookeeper-3.6.0-bin.tar.gz 
# 为了方便,修改名字
mv apache-zookeeper-3.6.0-bin zookeeper

实例部署如图所示

配置zk

# 创建data目录
cd /opt/app/zookeeper/zk1/zookeeper
mkdir data
# 创建myid文件
cd data
touch myid
# 在myid文件中写入1
# 修改配置文件
cd /opt/app/zookeeper/zk1/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
# 修改以下配置,保存退出
dataDir=/opt/app/zookeeper/zk1/zookeeper/data
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

如图所示

 配置zk2、zk3实例

# 把zk1下的实例分别cp到zk2、zk3目录下
# 分别修改zk2、zk3 data目录下myid文件为2和3
vim /opt/app/zookeeper/zk2/zookeeper/data/myid
vim /opt/app/zookeeper/zk3/zookeeper/data/myid
# 分别修改conf目录下zoo.cfg文件
cd /opt/app/zookeeper/zk2/zookeeper/conf
vim zoo.cfg
# 修改clientPort端口为2182
cd /opt/app/zookeeper/zk3/zookeeper/conf
vim zoo.cfg
# 修改clientPort端口为2183

启动实例

启动的时候可以再开个窗口观察下日志有否异常,日志目录:/opt/app/zookeeper/zk1/zookeeper/logs,有异常就处理

# 启动实例zk1
cd /opt/app/zookeeper/zk1/zookeeper/bin
./zkServer.sh start
# 启动实例zk2
cd /opt/app/zookeeper/zk2/zookeeper/bin
./zkServer.sh start
# 启动实例zk3
cd /opt/app/zookeeper/zk3/zookeeper/bin
./zkServer.sh start
# 如果出现8080端口被占用的情况,则修改下zk1、zk2、zk3下配置zoo.cfg文件,通过查阅官方文档,发现这是Zookeeper3.5版本的新特性:这是Zookeeper AdminServer,默认使用8080端口,我们可以把三个实例修改成不同的端口即可。
zk1:zoo.cfg中添加:admin.serverPort=8080
zk2:zoo.cfg中添加:admin.serverPort=8180
zk3:zoo.cfg中添加:admin.serverPort=8280
然后重启,观察日志。

观察zk集群状态

zk1状态 

cd /opt/app/zookeeper/zk1/zookeeper/bin

./zkServer.sh status

zk2状态 

cd /opt/app/zookeeper/zk2/zookeeper/bin

./zkServer.sh status

zk3状态 

cd /opt/app/zookeeper/zk3/zookeeper/bin

./zkServer.sh status

可以看到现在实例zk3为主,zk1、zk2为从,我们可以尝试停掉主节点看看zk的主从切换是否正常

cd /opt/app/zookeeper/zk3/zookeeper/bin

./zkServer.sh stop

再启动zk3,查看状态,可以看到现在实例zk3已经变成从节点

观察下实例zk1、zk2哪个变为主节点

如上图可以看到实例zk2已经变成主节点,说明zk的选举也正常,zk单机集群部署完成!

 

posted @ 2021-11-09 14:36  sxFu9528  阅读(247)  评论(0编辑  收藏  举报