1,安装配置(linux版)
1.1 下载安装包(按照所需下载)
Index of /dist/zookeeper (apache.org)https://archive.apache.org/dist/zookeeper/
1.2 创建目录,上传到software目录
mkdir /opt/software
1.3 解压到指定目录(opt/module/)
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
1.4 创建dataDir目录
cd apache-zookeeper-3.5.7-bin/ #进入zookeeper目录下
mkdir data
1.5 添加配置文件(zoo.cfg)
cd conf #打开cong目录
cp zoo_sample.cfg zoo.cfg #复制原配置文件,并重新命名
1.6 修改配置文件
dataDir=/opt/module/apache-zookeeper-3.5.7-bin/data
1.7 环境配置
为了能够在任意目录启动zookeeper集群,我们需要配置环境变量,否则每次启动zookeeper需要到安装文件的 bin 目录下去启动。
vim /etc/profile #打开文件
#写入文件
export ZK_HOME="/opt/module/apache-zookeeper-3.5.7-bin"
export PATH="$PATH:$ZK_HOME/bin"
source /etc/profile #保存使之生效
echo $PATH #查看是否生效
1.8 启动服务
启动命令:zkServer.sh start
停止命令:zkServer.sh stop
重启命令:zkServer.sh restart
查看集群节点状态:zkServer.sh status
1.8 启动客户端
zkCli.sh -server (ip地址/或者主机名称)
2,集群配置
2.1 在设置的data目录下,创建文件 myid,并输入服务编号
cat >>myid
0
#回车输入服务编号,然后ctrl+Z退出
2.2 在conf/zoo.cfg文件中加入:
server.1=192.168.159.128:2888:3888
server.2=192.168.159.129:2888:3888
server.3=192.168.159.130:2888:3888
server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号,也就是myid中写的数字;
B:是这个服务器的 ip 地址;
C:Zookeeper服务器之间的通信端口;默认:2888
D:Leader选举的端口。默认:3888
2.3 启动失败:
原因:
1)未关闭防火墙:
systemctl stop firewalld | systemctl disable firewalld #关闭禁用防火墙
2)没有按照顺序启动(参考2.2,server的顺序)
按照顺序依次启动,然后再依次查看状态
3,节点介绍
3.1 节点类型
根据zookeeper的节点类型,可分类如图表所示:
类型 | 描述 |
---|---|
PERSISTENT | 持久节点 |
PERSISTENT_SEQUENTIAL | 持久序号节点 |
EPHEMERAL | 临时节点(不可在拥有子节点,且会在客户端会话断开后自动删除) |
EPHEMERAL_SEQUENTIAL | 临时序号节点(不可在拥有子节点,且会在客户端会话断开后自动删除) |
3.2 节点属性
属性 | 含义 |
---|---|
cZxid | 创建节点时的事务ID |
ctime | 创建节点时的时间 |
mtime | 最后修改节点的时间 |
mZxid | 最后修改节点时的事务ID |
pZxid | 表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID(注意,只有子节点列表变更了才会变更pzxid,子节点内容变更不会影响pzxid) |
cversion | 子节点版本号,子节点每次修改版本号加1 |
dataVersion | 数据版本号,数据每次修改该版本号加1 |
aclVersion | 权限版本号,权限每次修改该版本号加1 |
ephemeralOwner | 创建该临时节点的会话的sessionID。(如果该节点是持久节点,那么这个属性值为0) |
dataLength | 该节点的数据长度 |
numChildren | 直接子节点的数量 |
3.3 节点监听
客户端使用时添加 -w 参数可实时监听节点与子节点的变化,并且实时收到通知。非常适用保障分布式情况下的数据一至性。其使用方式如下:
命令 | 描述 |
---|---|
ls -w path | 监听子节点的变化(增,删) |
get -w path | 监听节点数据的变化 |
stat -w path | 监听节点属性的变化 |
printwatches on|off | 触发监听后,是否打印监听事件(默认on) |
4,常用基本命令
1,创建节点
create
-s(有序号就写,无序号不写)
-e(临时的写,不是就不写)
/ 路径(可以多层路径,也可以直接写节点名称)
"节点的值" 可以不写,默认为null
例如:
create -s -e /kangyy "kangyy" #创建了一个临时有序的节点,且值为kangyy
2,修改节点数据
set /路径 "节点值"
例如:
set /knagyy "kangyy"
3,查看节点数据
get -s /kangyy
4,删除节点
delete /节点 #删除单个节点
deleteall /节点 #删除整个路径下的所有节点