首页 > 代码库 > Zookeeper集群安装(CentOS 7环境下)

Zookeeper集群安装(CentOS 7环境下)

一、环境操作系统和软件版本介绍

1.环境操作系统为CentOS Linux release 7.2.1511 (Core)

可用cat /etc/redhat-release查询

技术分享

2.软件版本

Zookeeper版本为:3.4.9

注意:请用java –version检查环境有无安装JDK,如显示java版本信息,表示已安装,可以进行以下步骤。如无安装,请自行安装JDK并配置环境变量,再进行以下操作!

二、详细安装步骤

1.在zookeeper官网下载压缩包到/data/soft目录,此文下载版本为zookeeper-3.4.9.tar.gz

技术分享

2.在/data/app下创建一个叫zkcluster的文件夹

技术分享

3.从当前目录/data/soft解压zookeeper到/data/app/zkcluster目录下

1 [root@centos7 soft]# tar -zxvf zookeeper-3.4.9.tar.gz -C /data/app/zkcluster

技术分享

4.把解压的文件名改为3001

1 [root@centos7 zkcluster]# mv zookeeper-3.4.9 3001

技术分享

4.进入到/data/app/zkcluster/3001/conf目录中,复制zoo_sample.cfg文件的并命名为 zoo.cfg

1 [root@centos7 conf]# cp zoo_sample.cfg zoo.cfg

技术分享

6.复制完成后,编辑zoo.cfg文件,用vi打开

1 [root@centos7 conf]# vi zoo.cfg

技术分享

可注释掉原data路径(也可保留),添加新的data、logs路径,修改端口,增加集群实例

1 #dataDir=/tmp/zookeeper
2 dataDir=/data/app/zkcluster/3001/data
3 dataLogDir=/data/app/zkcluster/3001/logs
4 clientPort=3001
5 server.1=192.168.1.18:2888:3888
6 server.2=192.168.1.18:2889:3889
7 server.3=192.168.1.18:2890:3890

技术分享

7.添加完成后用:wq命令保存并关闭 zoo.cfg 文件

8.其他两台服务器上的zk同上,先修改文件夹名称(在此文另外两个文件夹名称为3002和3003)

 技术分享

再进入conf目录,复制zoo_sample.cfg文件的并命名为zoo.cfg,再进行修改:

1 #dataDir=/tmp/zookeeper
2 dataDir=/data/app/zkcluster/3002/data
3 dataLogDir=/data/app/zkcluster/3002/logs
4 clientPort=3002
5 server.1=192.168.1.18:2888:3888
6 server.2=192.168.1.18:2889:3889
7 server.3=192.168.1.18:2890:3890
1 #dataDir=/tmp/zookeeper
2 dataDir=/data/app/zkcluster/3003/data
3 dataLogDir=/data/app/zkcluster/3003/logs
4 clientPort=3003
5 server.1=192.168.1.18:2888:3888
6 server.2=192.168.1.18:2889:3889
7 server.3=192.168.1.18:2890:3890

9.进入/data/app/zkcluster/3001/data目录,新增一个myid文件,内容填写1。3002文件夹中myid为2,3003中myid为3

1 [root@centos7 data]# vi myid

技术分享

技术分享

三、启动&验证:

1.在/data/app/zkcluster/3001/bin下启动ZK。3002和3003相同。

1 [root@centos7 bin]# ./zkServer.sh start

技术分享

2.三台服务器启动后,分别查看状态:

1 [root@centos7 bin]# ./zkServer.sh status
2 ZooKeeper JMX enabled by default
3 Using config: /data/app/zkcluster/3001/bin/../conf/zoo.cfg
4 Mode: follower
5 [root@centos7 bin]# pwd
6 /data/app/zkcluster/3001/bin

技术分享

1 [root@centos7 bin]# ./zkServer.sh status
2 ZooKeeper JMX enabled by default
3 Using config: /data/app/zkcluster/3002/bin/../conf/zoo.cfg
4 Mode: leader

技术分享

1 [root@centos7 bin]# ./zkServer.sh status
2 ZooKeeper JMX enabled by default
3 Using config: /data/app/zkcluster/3003/bin/../conf/zoo.cfg
4 Mode: follower

技术分享

可见,3002为leader,3001和3003为follower。

3.通过客户端连接ZooKeeper的集群,我们可以任意的zookeeper是进行连接

首先连接3002

1 [root@centos7 bin]# ./zkCli.sh -server 192.168.1.18:3002

技术分享

注意:可以用help查看相关命令

1 [zk: 192.168.1.18:3003(CONNECTED) 11] help

技术分享

4.查看现在节点,然后创建节点test,并存储数据

1 [zk: 192.168.1.18:3002(CONNECTED) 0] ls /
2 [zookeeper]
3 [zk: 192.168.1.18:3002(CONNECTED) 1] create /test data
4 Created /test

技术分享

5.使用 connect 命令, 连接到其他 zkServer

1 [zk: 192.168.1.18:3002(CONNECTED) 2] connect 192.168.1.18:3001

技术分享

在3001下,使用 ls path 和 get path 命令, 检测节点和数据是否已同步

 1 [zk: 192.168.1.18:3001(CONNECTED) 3] ls /
 2 [zookeeper, test]
 3 [zk: 192.168.1.18:3001(CONNECTED) 4] get /test
 4 data
 5 cZxid = 0x200000008
 6 ctime = Mon Jan 16 17:20:02 CST 2017
 7 mZxid = 0x200000008
 8 mtime = Mon Jan 16 17:20:02 CST 2017
 9 pZxid = 0x200000008
10 cversion = 0
11 dataVersion = 0
12 aclVersion = 0
13 ephemeralOwner = 0x0
14 dataLength = 4
15 numChildren = 0

技术分享

使用 connect 命令, 连接到3002的 zkServer

在3002下使用 ls path 和 get path 命令, 检测节点和数据是否已同步

 1 [zk: 192.168.1.18:3001(CONNECTED) 5] connect 192.168.1.18:3002
 2 [zk: 192.168.1.18:3002(CONNECTED) 6] ls /
 3 [zookeeper, test]
 4 [zk: 192.168.1.18:3002(CONNECTED) 7] get /test
 5 data
 6 cZxid = 0x200000008
 7 ctime = Mon Jan 16 17:20:02 CST 2017
 8 mZxid = 0x200000008
 9 mtime = Mon Jan 16 17:20:02 CST 2017
10 pZxid = 0x200000008
11 cversion = 0
12 dataVersion = 0
13 aclVersion = 0
14 ephemeralOwner = 0x0
15 dataLength = 4
16 numChildren = 0

技术分享

使用 connect 命令, 连接到3003的 zkServer

在3003下使用 ls path 和 get path 命令, 检测节点和数据是否已同步

 1 [zk: 192.168.1.18:3002(CONNECTED) 8] connect 192.168.1.18:3003
 2 [zk: 192.168.1.18:3003(CONNECTED) 9] ls /
 3 [zookeeper, test]
 4 [zk: 192.168.1.18:3003(CONNECTED) 10] get /test
 5 data
 6 cZxid = 0x200000008
 7 ctime = Mon Jan 16 17:20:02 CST 2017
 8 mZxid = 0x200000008
 9 mtime = Mon Jan 16 17:20:02 CST 2017
10 pZxid = 0x200000008
11 cversion = 0
12 dataVersion = 0
13 aclVersion = 0
14 ephemeralOwner = 0x0
15 dataLength = 4
16 numChildren = 0

技术分享

验证通过!

 

Zookeeper集群安装(CentOS 7环境下)