1. 伪集群模式介绍
Zookeeper不但可以在单机上运行单机模式Zookeeper,而且可以在单机模拟集群模式Zookeeper的运行,也就是将不同实例运行在同一台机器,用端口进行分,伪集群模式为我们体验Zookeeper和做一些尝试性的实验提供了很大的便利。比如,在测试的时候,可以先使用少量数据在伪集群模式下进行测试。当测试可行的时候,再将数据移植到集群模式进行真实的数据实验。这样不但保证了它的可行性,同时大大提高了实验的效率。这种搭建方式,比较简便,成本比较低,适合测试和学习
意事项∶
一台机器上部署了 3 个 server,也就是说单台机器及上运行多个 Zookeeper 实例。这种情况下,必须保证每个配置文档的各个端口号不能冲突,除 clientPort 不同之外,dataDir 也不同。另外,还要在 dataDir 所对应的目录中创建 myid 文件来指定对应的 Zookeeper 服务器实例
-
clientPort端口
如果在1台机器上部署多个server,那么每台机器都要不同的 clientPort,比如 server1 是 2181,server2 是 2182,server3 是 2183 -
dataDir 和 dataLogDir
dataDir和dataLogDir也需要区分下,将数据文件和日志文件分开存放,同时每个server的这两变量所对应的路径都是不同的 -
server.X和myid
server.X这个数字就是对应,data/myid中的数字。
在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg
都配server.1,server.2,server.3 就行了。因为在同一台机器上,后面连着的2 个端口,3个server都不要一样,否则端口冲突
2. 安装
2.1 复制路径
2.2 下载
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
2.3 解压到指定目录
mkdir zkcluster
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /home/note/zkcluster
2.4 修改名称并复制
mv apache-zookeeper-3.6.2-bin/ zookeeper01
cp -r zookeeper01/ zookeeper02
cp -r zookeeper01/ zookeeper03
2.5 分别在zookeeper01、zookeeper02、zookeeper03 目录下创建 data 及 logs 目录
mkdir data
cd data
mkdir logs
2.6 修改各个 zookeeper 的文件名称
cd conf
mv zoo_sample.cfg zoo.cfg
2.7 修改配置(zoo.cfg)
dataDir=/home/note/zkcluster/zookeeper01/data
dataLogDir=/home/note/zkcluster/zookeeper01/data/logs
clientPort=2181
dataDir=/home/note/zkcluster/zookeeper02/data
dataLogDir=/home/note/zkcluster/zookeeper02/data/logs
clientPort=2182
dataDir=/home/note/zkcluster/zookeeper03/data
dataLogDir=/home/note/zkcluster/zookeeper03/data/logs
clientPort=2183
2.8 配置集群
- 在每个zookeeper的 data 目录下创建一个 myid 文件,内容分别是1、2、3 。这个文件就是记录每个服务器的ID
touch myid
- 在每一个zookeeper 的 zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表
# server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
2.9 启动集群
依次启动三个zookeeper实例
./zkServer.sh start