Zookeeper 集群环境搭建

复制和安装 zookeeper

  1. 将本地apache-zookeeper-3.5.7-bin.tar.gz复制进master容器中root目录中
1
docker cp /path/to/apache-zookeeper-3.5.7-bin.tar.gz master:/root
  1. zookeeper解压进/opt/module目录下
1
tar zxvf /root/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
  1. 将解压后的目录改名为zookeeper
1
mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeeper

配置 zookeeper

  1. zookeeper的配置文件都存放在${ZOOKEEPER_HOME}/conf
1
cd /opt/module/zookeeper/conf
  1. 配置文件模板复制成配置文件
1
cp zoo_sample.cfg zoo.cfg
  1. 配置 zoo.cfg
  • 修改 dataDir
1
2
3
initLimit=5
syncLimit=2
dataDir=/opt/module/zookeeper/data
  • 在最底部添加
1
2
3
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

配置 data 文件夹

  1. zookeeper 目录下创建 data 文件夹
1
mkdir -p /opt/module/zookeeper/data
  1. data文件夹中配置myid文件,并写入 1 表示 master 节点的 ID
1
echo "1" > myid

分发 zookeeper

1
2
scp -r /opt/module/zookeeper slave1:/opt/module
scp -r /opt/module/zookeeper slave2:/opt/module
  1. 配置slave1中的myid文件,写入2表示slave1节点的 ID
1
echo "2" > /opt/module/zookeeper/data/myid
  1. 配置slave2中的myid文件,写入3表示slave2节点的 ID
1
echo "3" > /opt/module/zookeeper/data/myid

启动集群

!!!三个容器中都有执行!!!

1
/opt/module/zookeeper/bin/zkServer.sh start

验证集群

  1. 使用jps命令查看zookeeper进程:
1
jps
  1. 三个容器均出现进程QuorumPeerMain表示启动成功
1
7940 QuorumPeerMain
  1. 输入指令进入zkCli
1
/opt/module/zookeeper/bin/zkCli.sh
  1. 输入ls /, 出现[zookeeper]即配置成功
1
2
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]

参考文章

zookeeper官方文档