目录
前言
上一篇文章主要介绍了Zookeeper单机版的安装
本篇文章主要讲解Zookeeper集群版以及Zookeeper常用命令介绍。
一、Zookeeper集群
1、Zookeeper 集群说明
1.1 Zookeeper 集群中的角色
Zookeeper 集群中的角色主要有以下三类:
2、集群的搭建(伪集群)
使用 3 个 Zookeeper 应用搭建一个伪集群。应用部署位置是:192.168.15.131。
客户端监听端口分别为:2181、2182、2183。投票选举端口分别为 2881/3881、2882/3882、2883/3883。
2.1、拷贝文件
首先在/usr/local/的目录下新建一个文件zookeeperCluster用于存放后续文件,然后将root/temp目录下我们解压的zookeeper文件做拷贝,如下所示:
cd /usr/local
mkdir zookeeperCluster
cd /root/temp
cp apache-zookeeper-3.6.0-bin /usr/local/zookeeperCluster/zookeeper01 -r
cd /usr/local/zookeeperCluster/zookeeper01/
2.2、提供缓存目录并拷贝应用
这里我们进入到zookeeperCluster的zookeeper01目录下之后,新建一个data目录,用于缓存应用运行数据,创建之后进入data目录使用pwd命令获取路径,然后复制路径,返回到zookeeperCluster目录下,使用cp命令将zookeeper复制两份,用于模拟集群中的3个节点,命令如下:
mkdir data
cd data
pwd
cd ../..
cp zookeeper01 zookeeper02 -r
cp zookeeper01 zookeeper03 -r
2.3、提供配置文件、设置缓存路径
在每个zookeeper应用目录中有子目录 conf,需要配置里面的配置文件,
首先进入到zookeeper01/conf目录下将zoo_sample.cfg改为zoo.cfg,然后使用vim命令编辑这个文件,在这个文件中加入dataDir 参数值为应用运行缓存数据保存目录,每个Zookeeper都要这样配置。
cd zookeeper01/conf
cp zoo_sample.cfg zoo.cfg -r
vim zoo.cfg
这里要将三个zookeeper的配置文件都要改名、然后加入这样的配置。
2.4、提供应用唯一标识
在 Zookeeper 集群中,每个节点需要一个唯一标识。这个唯一标识要求是自然数。且唯一标识保存位置是:
数据缓存目录(dataDir=/usr/local/zookeeper/data)的 myid 文件中。其中“数据缓存目录”为配置文件 zoo.cfg 中的配置参数。
执行以下命令:
echo 1 >> zookeeper01/data/myid
echo 2 >> zookeeper02/data/myid
echo 3 >> zookeeper03/data/myid
然后可以使用cat zookeeper01/data/myid去查看唯一标识。
2.5、修改配置文件 zoo.cfg - 设置服务、投票、选举端口
首先要进入到每个zookeeper的conf目录下去编辑zoo.cfg文件,
编辑内容如下所示:
vim zookeeper01/conf/zoo.cfg
#服务端口根据应用做对应修改,zk01-2181,zk02-2182,zk03-2183
clientPort=2181
server.1=192.168.15.131:2881:3881
server.2=192.168.15.131:2882:3882
server.3=192.168.15.131:2883:3883
以上为zookeeper01的设置,如果是zookeeper02,属性clientPort就是2182,如下所示(这里我只演示两个zookeeper的,第三个自己配置):
vim zookeeper02/conf/zoo.cfg
#服务端口根据应用做对应修改,zk01-2181,zk02-2182,zk03-2183
clientPort=2182
server.1=192.168.15.131:2881:3881
server.2=192.168.15.131:2882:3882
server.3=192.168.15.131:2883:3883
三个zookeeper都配置完成之后就保存退出,然后就是编写我们的启动和停止脚本了。
2.6、编写启动、关闭集群脚本并且授权
回到zookeeperCluster目录下,使用以下命令去创建并编辑脚本:
启动脚本
第一步:vim start.sh
第二步复制以下内容粘贴到以上文件中,然后保存退出
zookeeper01/bin/zkServer.sh start
zookeeper02/bin/zkServer.sh start
zookeeper03/bin/zkServer.sh start
关闭脚本:
第一步:vim stop.sh
第二步复制以下内容粘贴到以上文件中,然后保存退出
zookeeper01/bin/zkServer.sh stop
zookeeper02/bin/zkServer.sh stop
zookeeper03/bin/zkServer.sh stop
查看状态的脚本:
第一步:vim status.sh
第二步复制以下内容粘贴到以上文件中,然后保存退出
zookeeper01/bin/zkServer.sh status
zookeeper02/bin/zkServer.sh status
zookeeper03/bin/zkServer.sh status
脚本编写完毕之后,由于没有授权不能运行,因此我们还要进行授权,
如下所示:
给启动脚本授权:
chmod +x start.sh
给关闭脚本授权:
chmod +x stop.sh
给查看状态的脚本授权:
chmod +x status.sh
授权完毕之后就可以去使用脚本启动zookeeper集群了。
注意:脚本文件的配置是在zookeeperCluster目录下进行的,启动关闭也是在该目录下执行。
启动命令:./start.sh
停止命令:./stop.sh
2.7、客户端连接Zookeeper集群
在集群启动的情况下,使用以下命令我们可以在zookeeperCluster目录下连接集群:
格式为:zkCli.sh -server host:port
./zookeeper/bin/zkCli.sh -server 192.168.15.131:2181
连接成功之后是这样的:
注意:在本机的集群情况下我们可以连接任何一个端口,如果是三个Linux组合成的集群,那么中间的ip地址就可以填对应的linux地址,因为是集群,所以我们链接其中的任何一个都可以。
二、常用命令的介绍
1 ls 命令
基本格式为:ls /path
使用 ls 命令查看 zookeeper 中的内容。在 ZooKeeper 控制台客户端中,没有默认列表功能,必须指定要列表资源的位置。 如: ls / 或者 ls /path
2 create 命令
create [-e] [-s] /path [data]
使用 create 命令创建一个新的 Znode。create [-e] [-s] path data - 创建节点,如: create /test 123 创建一个/test 节点,节点携带数据信息 123。
create -e /test 123 创建一个临时节点/test,携带数据为 123,临时节点只在当前会话生命周期中有效,会话结束节点自动删除。
create -s /test 123 创建一个顺序节点/test,携带数据 123,创建的顺序节点由 ZooKeeper 自动为节点增加后缀信息,如-/test00000001 等。-e 和-s 参数可以联合使用。
3 get 命令
基本格式为:get [-s] /path
get 命令获取 Znode 中的数据。
get -s /path
-s 查看 Znode 详细信息
(1)oldlu:存放的数据
(2)cZxid:创建时 zxid(znode 每次改变时递增的事务 id)
(3)ctime:创建时间戳
(4)mZxid:最近一次更近的 zxid
(5)mtime:最近一次更新的时间戳
(6)pZxid:子节点的 zxid
(7)cversion:子节点更新次数
(8)dataversion:节点数据更新次数
(9)aclVersion:节点 ACL(授权信息)的更新次数
(10)ephemeralOwner:如果该节点为 ephemeral 节点(临时,生命周期与 session 一样),ephemeralOwner 值表示与该节点绑定的 session id. 如果该节点不是ephemeral 节点, ephemeralOwner 值为 0.
(11)dataLength:节点数据字节数
(12)numChildren:子节点数量
4 set 命令
基本格式为:set /path [data]
添加或修改 Znode 中的值
5 delete 命令
基本格式为:delete /path
删除 Znode。
上一篇学习:学习笔记之Zookeeper学习(一)
下一篇学习:学习笔记之Zookeeper学习(三)
喜欢的小伙伴记得点一下赞哦,谢谢!