Ubuntu18搭建zookeeper单机集群
1. 下载zookeeper
https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
2. 解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
此时会解压出文件夹apache-zookeeper-3.6.3-bin
,重命名一下
mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3
放到opt
目录下
mv zookeeper-3.6.3/ /opt
3. 配置zookeeper数据目录、日志目录
mkdir -p /data/zookeeper/zk1/data
mkdir -p /data/zookeeper/zk1/log
mkdir -p /data/zookeeper/zk2/data
mkdir -p /data/zookeeper/zk2/log
mkdir -p /data/zookeeper/zk3/data
mkdir -p /data/zookeeper/zk3/log
4. 配置文件
cd /opt/zookeeper-3.6.3/conf
conf
目录下有个zoo_sample.cfg
,这个是模板配置文件,以此为模板复制一个配置文件
cp zoo_sample.cfg zoo1.cfg
修改zoo1.cfg
内容
dataDir=/data/zookeeper/zk1/data
dataLogDir=/data/zookeeper/zk1/log
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
最后配置的解释
server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号
B:是这个服务器的 ip 地址
C:Zookeeper服务器之间的通信端口
D:Leader选举的端口
以zoo1.cfg
,复制zoo2.cfg
cp zoo1.cfg zoo2.cfg
修改zoo2.cfg
,注意子目录为 zk2
,端口为2182
,最后的server
块不需要改动
dataDir=/data/zookeeper/zk2/data
dataLogDir=/data/zookeeper/zk2/log
clientPort=2182
同理复制zoo3.cfg
并修改,注意子目录为 zk3
,端口为2183
,最后的server
块不需要改动
dataDir=/data/zookeeper/zk3/data
dataLogDir=/data/zookeeper/zk3/log
clientPort=2183
5. 配置 myid
必须要在zookeeper
的dataDir
目录下存在myid
文件,内容为服务器编号,zookeeper启动时会读取该文件,通过文件内容判断为哪个server
echo 1 > /data/zookeeper/zk1/data/myid
echo 2 > /data/zookeeper/zk2/data/myid
echo 3 > /data/zookeeper/zk3/data/myid
6. 启动zookeeper集群
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo1.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo2.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo3.cfg
7. 查看集群各个节点状态
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo1.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo2.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo3.cfg
Mode
为Leader
为主节点,follwer
为从节点