ZooKeeper-环境搭建
- 2022-04-25
伪集群搭建
安装环境
下述环境为
- Ubuntu 20 LTS
Linux version 5.15.0-25-generic (buildd@ubuntu) (gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 - Java
openjdk version “11.0.14.1” 2022-02-08
ZooKeeper 下载
ZooKeeper下载链接:https://zookeeper.apache.org/releases.html
在下载页面分为最新的Release版本和最近的稳定Release版本
本文采用的Zookeeper版本为 (Apache ZooKeeper 3.8.0)
下载地址:https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
伪集群目录结构
建立 zk-demo 目录,把 apache-zookeeper-3.8.0-bin.tar.gz 放到 zk-demo 目录下面
在 zk-demo 打开 Terminal
$ tar -xzvf apache-zookeeper-3.8.0-bin.tar.gz
$ mkdir zk1 zk2 zk3
$ cp -R apache-zookeeper-3.8.0-bin zk1/
$ cp -R apache-zookeeper-3.8.0-bin zk2/
$ cp -R apache-zookeeper-3.8.0-bin zk3/
$ cd zk1
$ mkdir data logs
$ echo "1" >> data/myid
$ cd ../zk2
$ mkdir data logs
$ echo "2" >> data/myid
$ cd ../zk3
$ mkdir data logs
$ echo "3" >> data/myid
在 zk-demo 下的目录结构
.
├── apache-zookeeper-3.8.0-bin.tar.gz
├── apache-zookeeper-3.8.0-bin
├── zk1
│ ├── apache-zookeeper-3.8.0-bin
│ ├── data
│ │ ├── myid
│ └── logs
├── zk2
│ ├── apache-zookeeper-3.8.0-bin
│ ├── data
│ │ ├── myid
│ └── logs
└── zk3
├── apache-zookeeper-3.8.0-bin
├── data
│ ├── myid
└── logs
ZooKeeper 配置
在 apache-zookeeper-3.8.0-bin 中 conf 下存在 zoo_sample.cfg 样例文件
在 apache-zookeeper-3.8.0-bin 中 conf 下创建 zoo.cfg
注意 dataDir、dataLogDir、clientProt 对于每个 ZK实例 是不同的
ZK1 对应 的 zoo.cfg
tickTime=2000 # 单位时间,其他时间都是以这个倍数来表示
initLimit=10 # 节点初始化时间,10倍单位时间(即十倍tickTime)
syncLimit=5 # 心跳最大延迟周期
dataDir=/home/zk-demo/zk1/data # 该实例对应的数据目录(上文步骤创建)
dataLogDir=/home/zk-demo/zk1/logs # 该实例对应的日志目录(上文步骤创建)
clientPort=2181 # 端口(每个实例不同)
server.1=127.0.0.1:8881:7771 # server.id=host:port:port
server.2=127.0.0.1:8882:7772 # server.id=host:port:port
server.3=127.0.0.1:8883:7773 # server.id=host:port:port
ZK2 对应 的 zoo.cfg
tickTime=2000 # 单位时间,其他时间都是以这个倍数来表示
initLimit=10 # 节点初始化时间,10倍单位时间(即十倍tickTime)
syncLimit=5 # 心跳最大延迟周期
dataDir=/home/zk-demo/zk2/data # 该实例对应的数据目录(上文步骤创建)
dataLogDir=/home/zk-demo/zk2/logs # 该实例对应的日志目录(上文步骤创建)
clientPort=2182 # 端口(每个实例不同)
server.1=127.0.0.1:8881:7771 # server.id=host:port:port
server.2=127.0.0.1:8882:7772 # server.id=host:port:port
server.3=127.0.0.1:8883:7773 # server.id=host:port:port
ZK3 对应 的 zoo.cfg
tickTime=2000 # 单位时间,其他时间都是以这个倍数来表示
initLimit=10 # 节点初始化时间,10倍单位时间(即十倍tickTime)
syncLimit=5 # 心跳最大延迟周期
dataDir=/home/zk-demo/zk3/data # 该实例对应的数据目录(上文步骤创建)
dataLogDir=/home/zk-demo/zk3/logs # 该实例对应的日志目录(上文步骤创建)
clientPort=2183 # 端口(每个实例不同)
server.1=127.0.0.1:8881:7771 # server.id=host:port:port
server.2=127.0.0.1:8882:7772 # server.id=host:port:port
server.3=127.0.0.1:8883:7773 # server.id=host:port:port
ZooKeeper 启动
在 zk-demo 中打开 Terminal
$ ./zk1/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
$ ./zk2/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
$ ./zk3/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
出现了 “Starting zookeeper … FAILED TO START” 请检查配置文件,可以对应实例的 apache-zookeeper-3.8.0-bin\logs 文件夹的相关文件
ZooKeeper 连接
使用 zkCli 连接集群
/home/zk-demo/zk1/apache-zookeeper-3.8.0-bin/bin/zkCli.sh -server 127.0.0.1:2182