下载
解压
tar xvzf apache-zookeeper-3.7.0-bin.tar.gz
介绍
bin conf docs lib LICENSE.txt NOTICE.txt README.md README_packaging.md
bin目录
zkCli.sh 客户端启动脚本
zkServer.sh 服务端启动脚本
配置
cp zoo_sample.cfg zoo.cfg 复制配置文件
# The number of milliseconds of each tick
tickTime=2000 #时间单位(2秒)
# The number of ticks that the initial
# synchronization phase can take
initLimit=10 #zk节点数据同步间隔时间(10 × 2000)= 20秒
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5 #leader与follower节点心跳检测间隔时间 (10秒)
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper #数据持久化目录位置
# the port at which the clients will connect
clientPort=2181 #客户端连接端口
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
启动命令
./bin/zkServer.sh start conf/zoo.cfg
停止命令
./bin/zkServer.sh stop conf/zoo.cfg
连接命令
./bin/zkCli.sh -server 127.0.0.1:2181
创建持久化节点命令
ls / 查看节点
create /test #创建持久化节点
create /test2 xxxx #创建节点指定数据。
get /test2 #获取数据
set /test xxxx #设置数据
delete /test2 #删除节点
deleteall /test #批量删除
创建持久化子节点
create /test/sun01 #创建子节点
ls -R /test #查看节点和子节点
创建顺序节点
create -s /name #创建带序号的节点
创建临时节点(临时节点不能有子节点)
create -e /test2
get -s /test2 查看详情
null
cZxid = 0x16 #事务id
ctime = Mon Jun 21 10:19:56 CST 2021 #创建时间
mZxid = 0x16 #修改事务id
mtime = Mon Jun 21 10:19:56 CST 2021 #修改时间
pZxid = 0x16 #子节点事务id
cversion = 0 #子节点版本号
dataVersion = 0 #数据版本号
aclVersion = 0 #权限控制
ephemeralOwner = 0x100003baea00001 #sessionid
dataLength = 0 #数据长度字节数
numChildren = 0 #子节点数量
容器节点
create -c /container #创建容器节点
create /container/sun1 #创建容器子节点
create /container/sun2 #创建容器子节点
create /container/sun3 #创建容器子节点
开启TTL节点
vi zkServer.sh
ZOOMAIN="-Dzookeeper.extendedTypesEnabled=true
create -t 5000 /ttl-node ddd
事件监听
get -w /test #数据变化时会收到消息
removewatches /test #移除监听器
权限控制
echo -n user1:pass1 | openssl dgst -binary -sha1 | openssl base64 #生成密码
+7K83PhyQ3ijGj0ADmljf0quVwQ=
create /zknode dddd digest:user1:+7K83PhyQ3ijGj0ADmljf0quVwQ=:rw #设置权限
get /zknode #无效
addauth digest user1:pass1 #登陆权限
明文权限
addauth digest user1:pass1 #先登录
create /zknode2 xxxx auth:user1:pass1:rw 创建明文权限
create /zknode3 node3 ip:127.0.0.1:rw #设置指定ip可以的权限
关闭权限
vi zkServer.sh
getAcl /zknode #查看权限
超级管理员模式
集群配置
zoo.cfg
dataDir=/home/sirui/zookeeper/data
logDir=/home/sirui/zookeeper/logsserver.1=192.168.158.129:2181:3881
server.2=192.168.158.130:2181:3881
server.3=192.168.158.131:2181:3881
/home/sirui/zookeeper/data/
vi myid
对应1,2,3数字