假设 zookeeper 集群规划为 3 台机器(zookeeper 推荐集群机器个数为奇数),分别命名为:zk1、zk2 和 zk3。
安装
-
解压 zookeeper 安装包到 /opt/module/ 目录下
tar -zxvf zookeeper-3.4.9.tar.gz -C /opt/module/
-
在 /opt/module/zookeeper-3.4.9/ 目录下创建 zkData 目录
mkdir -p zkData
-
重命名 /opt/module/zookeeper-3.4.9/conf 目录下的 zoo_sample.cfg 文件为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
配置 zoo.cfg 文件
-
配置 zk 数据存储目录
默认情况下,zk 的数据存储目录在 /tmp 目录下,这当服务器重启时数据会丢失,因此我们需要配置 zk 的数据存储目录。
dataDir=/opt/module/zookeeper-3.4.9/zkData
-
配置集群
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888server.A=B:C:D 表示,A 是一个数字,对服务器的唯一标识,须具有唯一性;B 表示 A 服务器的 ip 地址;C 表示这个服务器与集群中 leader 服务器交换信息的端口号;D 表示如果集群中的 leader 服务器挂了,需要一个端口来重新进行选举 leader
-
创建 myid 文件
集群模式下需在 zk 数据存储目录下创建一个 myid 文本文件,当前我们配置 zk 数据存储目录为 /opt/module/zookeeper-3.4.9/zkData,所以我们需要在此目下创建 myid 文件。文件内容就是 A 的值,zookeeper 启东时会读取该文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server。
touch myid vim myid // 内容为当前服务机器的标识数字
至此基本上就配置好了,配置文件中其他参数可以根据实际需要调整。
复制
把刚才配置好的 zookeeper 到其他机器上。
scp -r zookeeper-3.4.9/root@zk2:/opt/module
scp -r zookeeper-3.4.9/root@zk3:/opt/module
**PS:**修改 myid 文件
启动并查看状态
-
启动
bin/zkServer.sh start
bin/zkServer.sh start
bin/zkServer.sh start -
查看状态
bin/zkServer.sh status