CentOS 7下Zookeeper集群安装
一、环境操作系统和软件版本介绍
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
验证通过!