在同一台服务器上,部署一个 3 个 ZooKeeper 节点组成的集群,这样的集群叫伪分布式集
群,而如果集群中的 3 个节点分别部署在 3 个服务器上,那么这种集群就叫真正的分布式
集群。
这里,记录一下搭建一个 3 节点的伪分布式集群的过程,真正的分布式集群的搭建过程和
伪分布式的过程类似,稍有不同,我会在下面指出来的。
首先,建立一个集群安装的目录,就叫 zookeeper。其次,在这个目录的下面解压三份
ZooKeeper,形成 3 个节点,每一个目录中的 ZooKeeper 就代表一个节点。
这样就形成了如下的安装目录结构:
/root/zookeeper
|----zookeeper1/
|----zookeeper2/
|----zookeeper3/
解压 zookeeper 安装包
首先在要安装集群的目录中解压 zk。
tar -zxvf zookeeper-3.4.10.tar.gz
之后把解压的 zk 复制出三份来,分别命名为 zookeeper1,zookeeper2,zookeeper3,这三
个目录中的 zk 就当成是集群中的 3 个节点。
为每个节点建立 data 目录、logs 目录和 myid 文件
在 3 个节点目录中分别建立 data 目录、logs 目录和 myid 文件。
下面是 zookeeper1 上的:
新建目录 data:mkdir data
新建目录 logs:mkdir logs
新建文件 myid:touch data/myid
myid 文件的内容是节点在集群中的编号,zookeeper1 节点的编号就写成 1,后边的
zookeeper2 的编号是 2,zookeeper3 的编号就是 3。
按照同样的方法,依次在 zookeeper2 和 zookeeper3 上都建立以上目录和文件。
为每个节点创建配置文件
在 zookeeper1 下新增配置文件:cp zoo_sample.cfg zoo.cfg
配置文件 zoo.cfg 的内容如下:
1
2
3
4
5
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper1/data
dataLogDir=/root/zookeeper/zookeeper1/logs 4
6
7
8
9
clientPort=2181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772
配置文件中的配置项的含义参见下面的介绍。
用同样的方法,在 zookeeper2 和 zookeeper3 的相应位置创建 zoo.cfg,文件内容复制
zookeeper1 的 zoo.cfg。只不过需要改动 clientport、dataDir、dataLogDir 三个配置项,
zookeeper2 的 clientport 改为 2182,zookeeper3 的 clientport 改为 2183,而 dataDir
和 dataLogDir 都修改为相应的目录,就好了。
经过以上的配置,zk 集群中的 3 个节点就全部配置好了。
启动 zk 集群
进入 zookeeper 集群的第一个节点 zookeeper0 的 bin 目录下,启动服务:
1
2
3
[root@localhost zookeeper]$
[root@localhost zookeeper]$ cd zookeeper1/
[root@localhost zookeeper1]$ bin/zkServer.sh start
然后,按照同样的方法,依次启动 zookeeper1 和 zookeeper2 的服务。
这样 zookeeper 集群的 3 个节点都启动起来了。 5
客户端接入集群
进入 zookeeper 集群中任意一个节点的 bin 目录下,启动一个客户端,接入已经启动好的
zookeeper 集群。这里的 server 可以填写集群中的任何一个节点的 ip,端口号是对应 ip
的节点的配置文件中 clientport 的值。
1
./zkCli.sh –server 127.0.0.1:2181
以上就是 zk 集群的搭建过程。