共计 4308 个字符,预计需要花费 11 分钟才能阅读完成。
一、环境操作系统和软件版本介绍
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 学习总结 http://www.linuxidc.com/Linux/2016-07/133179.htm
Ubuntu 14.04 安装分布式存储 Sheepdog+ZooKeeper http://www.linuxidc.com/Linux/2014-12/110352.htm
ZooKeeper 集群配置 http://www.linuxidc.com/Linux/2013-06/86348.htm
使用 ZooKeeper 实现分布式共享锁 http://www.linuxidc.com/Linux/2013-06/85550.htm
在 CentOS7 上安装 Zookeeper-3.4.9 服务 http://www.linuxidc.com/Linux/2016-09/135052.htm
ZooKeeper 服务器集群环境配置实测 http://www.linuxidc.com/Linux/2013-04/83559.htm
Zookeeper3.4.6 的安装 http://www.linuxidc.com/Linux/2015-05/117697.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139733.htm