天天看点

zookeeper 集群搭建方式

一、环境准备

1、首先去官网下载 zookeeper,选择相应的版本进行下载,此示例下载的是3.7.0版本,下载地址 https://zookeeper.apache.org/releases.html

2、安装JAVA环境,这里不做详细描述。

3、准备三台服务器,zookeeper的集群必须最少是3台,为什么是三台官网给出的说明如下:

 zookeeper的集群必须最少是3台,并且强烈建议您使用奇数个服务器,如果只有两台服务器,那么您将处于一种情况,如果其中一台服务器发生故障,则没有足够的计算机构成多数仲裁。由于存在两个单点故障,因此两个服务器本来就不如单个服务器稳定

192.168.145.219
192.168.145.245
192.168.145.91
           

二、操作步骤

本示例的zookeeper包所在的路径为 /soft/zookeeper,下来开始搭建zookeeper集群,下边的所有操作都是在192.168.145.219机器上操作

1、进入/soft/zookeeper目录,解压文件 tar xvfz apache-zookeeper-3.7.0-bin.tar.gz 

2、进入/soft/zookeeper/apache-zookeeper-3.7.0-bin/conf 目录  执行 cp zoo_sample.cfg zoo.cfg

3、修改配置文件 dataDir=/tmp/zookeeper/data, 也可以不修改,按照默认路径

4、在zoo.cfg文件下方添加集群节点,代码如下:

server.1=192.168.145.219:2888:3888
server.2=192.168.145.245:2888:3888
server.3=192.168.145.91:2888:3888
           
  1. 其中server.1 中的1表示1号机器  
  2. 192.168.145.219为一号机器的IP地址 
  3. 3888:follower选主投票使用的端口
  4. 2888:leader接受write请求使用

5、创建myid文件,里边写的是该机器的机器编号,需要和zoo.cfg中配置的节点信息相匹配

改文件的路径为zoo.cfg配置文件中的dataDir路径下  例如:示例中的dataDir为/tmp/zookeeper/data 那么就需要在/tmp/zookeeper/data目录下创建myid文件

将以上1-5的步骤在其它两台机器上也同样执行一遍......

启动zookeeper集群节点

进入到/soft/zookeeper/apache-zookeeper-3.7.0-bin/bin 目录下 执行./zkServer.sh start 命令
#./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /soft/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
           
看到上边的显示说明zookeeper已经启动成功,可以使用./zkServer.sh status命令查看zookeeper状态
#./zkServer.sh status

Using config: /soft/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
           

其它两个节点

Using config: /soft/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
           

到此zookeeper集群已经搭建完毕

三、验证集群

进入到任意一台的zookeeper的bin目录下,执行./zkCli.sh -server 127.0.0.1:2181 连接到zookeeper

连接成功后在根目录下创建一个test_myNode节点,节点创建成功后我们可以连接到其它两台zookeeper中查看是否有刚才创建的test_myNode节点,如果有则说明我们的zookeeper集群已经搭建成功,代码如下:

#./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 1] create /test_myNode
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /
[zookeeper,test_myNode]
           

继续阅读