Zookeeper常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper常用命令相关的知识,希望对你有一定的参考价值。
参考技术A ZooKeeper服务命令:在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作
1. 启动ZK服务: sh bin/zkServer.sh start
2. 查看ZK服务状态: sh bin/zkServer.sh status
3. 停止ZK服务: sh bin/zkServer.sh stop
4. 重启ZK服务: sh bin/zkServer.sh restart
zk客户端命令
ZooKeeper命令行工具类似于Linux的shell环境,不过功能肯定不及shell啦,但是使用它我们可以简单的对ZooKeeper进行访问,数据创建,数据修改等操作. 使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。
命令行工具的一些简单操作如下:
1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
6. 删除文件: delete /zk 将刚才创建的 znode 删除
7. 退出客户端: quit
8. 帮助命令: help
9rmr命令
删除节点命令,此命令与delete命令不同的是delete不可删除有子节点的节点,但是rmr命令可以删除,注意路径为绝对路径。
如rmr /zookeeper/znode
10 delquota命令
删除配额,-n为子节点个数,-b为节点数据长度。
如delquota –n 2,请参见listquota和setquota命令。
11printwatches命令
设置和显示监视状态,on或者off。
如printwatches on
listquota命令
显示配额。
如listquota /zookeeper
absolute path is/zookeeper/quota/zookeeper/zookeeper_limits
Output quota for /zookeepercount=2,bytes=-1
解释:
/zookeeper节点个数限额为2,长度无限额。
setAcl命令
设置节点Acl。
此处重点说一下acl,acl由大部分组成:1为scheme,2为user,3为permission,一般情况下表示为scheme:id:permissions。
其中scheme和id是相关的,下面将scheme和id一起说明。
scheme和id
world : 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的
auth : 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)
digest : 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication
ip : 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段
super : 在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)
permissions
CREATE (c): 创建权限,可以在在当前node下创建child node
DELETE (d): 删除权限,可以删除当前的node
READ (r): 读权限,可以获取当前node的数据,可以list当前node所有的child nodes
WRITE (w): 写权限,可以向当前node写数据
ADMIN (a): 管理权限,可以设置当前node的permission
综上,一个简单使用setAcl命令,则可以为:
setAcl /zookeeper/node1 world:anyone:cdrw
getAcl命令
获取节点Acl。
如getAcl /zookeeper/node1
'world,'anyone
: cdrwa
注:可参见setAcl命令。
sync命令
强制同步。
如sync /zookeeper
由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作。
redo命令
再次执行某命令。
如redo 10
其中10为命令ID,需与history配合使用。
addauth命令
节点认证。
如addauth digest username:password,可参见setAcl命令 digest处。
使用方法:
一、通过setAcl设置用户名和密码
setAcl pathdigest:username:base64(sha1(password)):crwda
二、认证
addauth digest username:password
delete命令
删除节点。
如delete /zknode1
setquota命令
设置子节点个数和数据长度配额。
如setquota –n 4 /zookeeper/node 设置/zookeeper/node子节点个数最大为4
setquota –b 100 /zookeeper/node 设置/zookeeper/node节点长度最大为100
ZooKeeper 常用四字命令:
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令
1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
4. echo kill | nc 127.0.0.1 2181 ,关掉server
5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。
ZooKeeper 常用命令
文章目录
本文主要介绍 ZooKeeper 的常用命令,包括常用命令行命令、ACL 访问控制、四字命令、解析日志和快照等命令。
ZooKeeper 命令行
连接
- 全局变量连接当前节点
当集群中的节点已安装 ZooKeeper Client,且 zookeeper-client
为全局环境变量时,可以直接在任意位置使用 zookeeper-client
命令连接当前节点的 ZooKeeper,进入命令行界面。
[root@manager ~]# zookeeper-client
Connecting to localhost:2181
…………
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
- shell 脚本连接
使用 zkCli.sh
进行连接当前节点 ZooKeeper。
[root@manager bin]# pwd
/usr/hdp/3.0.1.0-187/zookeeper/bin
[root@manager bin]# ll
total 40
-rwxr-xr-x. 1 root root 2155 Nov 23 2019 zkCleanup.sh
-rwxr-xr-x. 1 root root 1709 Nov 23 2019 zkCli.sh
-rwxr-xr-x. 1 root root 2840 Nov 23 2019 zkEnv.sh
-rwxr-xr-x. 1 root root 12 Nov 23 2019 zkServer-initialize.sh
-rwxr-xr-x. 1 root root 6822 Nov 23 2019 zkServer.sh
-rwxr-xr-x. 1 root root 304 Nov 23 2019 zookeeper-client
-rwxr-xr-x. 1 root root 649 Nov 23 2019 zookeeper-server
-rwxr-xr-x. 1 root root 650 Nov 23 2019 zookeeper-server-cleanup
-rwxr-xr-x. 1 root root 660 Nov 23 2019 zookeeper-server-initialize
[root@manager bin]# ./zkCli.sh
Connecting to localhost:2181
…………
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
- 连接某个节点的 ZooKeeper
无论是全局变量或 shell 脚本,都可以使用 -server ip:port
的方法连接到某个节点的 ZooKeeper。
[root@manager ~]# zookeeper-client -server master.bigdata:2181
Connecting to master.bigdata:2181
…………
[root@manager bin]# pwd
/usr/hdp/3.0.1.0-187/zookeeper/bin
[root@manager bin]# ll
total 40
-rwxr-xr-x. 1 root root 2155 Nov 23 2019 zkCleanup.sh
-rwxr-xr-x. 1 root root 1709 Nov 23 2019 zkCli.sh
-rwxr-xr-x. 1 root root 2840 Nov 23 2019 zkEnv.sh
-rwxr-xr-x. 1 root root 12 Nov 23 2019 zkServer-initialize.sh
-rwxr-xr-x. 1 root root 6822 Nov 23 2019 zkServer.sh
-rwxr-xr-x. 1 root root 304 Nov 23 2019 zookeeper-client
-rwxr-xr-x. 1 root root 649 Nov 23 2019 zookeeper-server
-rwxr-xr-x. 1 root root 650 Nov 23 2019 zookeeper-server-cleanup
-rwxr-xr-x. 1 root root 660 Nov 23 2019 zookeeper-server-initialize
[root@manager bin]# ./zkCli.sh -server master.bigdata:2181
Connecting to master.bigdata:2181
…………
退出
在 ZooKeeper Client 命令行交互窗口输入 quit
,退出命令行界面。
[zk: localhost:2181(CONNECTED) 0] quit
Quitting...
2022-01-03 13:51:57,780 - INFO [main:ZooKeeper@692] - Session: 0x17e03c37bbc0010 closed
2022-01-03 13:51:57,782 - INFO [main-EventThread:ClientCnxn$EventThread@517] - EventThread shut down
[root@manager ~]#
Znode 基本操作
help 命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
列出当前节点的子节点
使用 ls path
查看 znode 节点的子节点
[zk: localhost:2181(CONNECTED) 0] ls /
[cluster, controller, brokers, zookeeper, hbase-unsecure, dolphinscheduler, admin, isr_change_notification, log_dir_event_notification, hiveserver2, controller_epoch, hiveserver2-leader, kafka-manager, rmstore, atsv2-hbase-unsecure, ambari-metrics-cluster, consumers, latest_producer_id_block, config]
[zk: localhost:2181(CONNECTED) 1] ls /brokers
[ids, topics, seqid]
[zk: localhost:2181(CONNECTED) 2] ls /brokers/ids
[1003, 1002, 1001]
[zk: localhost:2181(CONNECTED) 3]
获取节点存储内容
使用 get path
获取该节点的存储内容。
[zk: localhost:2181(CONNECTED) 3] get /brokers/ids/1001
"listener_security_protocol_map":"PLAINTEXT":"PLAINTEXT","endpoints":["PLAINTEXT://master.bigdata:6667"],"jmx_port":-1,"host":"master.bigdata","timestamp":"1640751404064","port":6667,"version":4
cZxid = 0x60000014a
ctime = Wed Dec 29 12:16:44 CST 2021
mZxid = 0x60000014a
mtime = Wed Dec 29 12:16:44 CST 2021
pZxid = 0x60000014a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x17e03c37bbc0001
dataLength = 198
numChildren = 0
[zk: localhost:2181(CONNECTED) 4]
获取节点状态
使用 stat path
获取该节点的状态。
[zk: localhost:2181(CONNECTED) 4] stat /brokers/ids/1001
cZxid = 0x60000014a
ctime = Wed Dec 29 12:16:44 CST 2021
mZxid = 0x60000014a
mtime = Wed Dec 29 12:16:44 CST 2021
pZxid = 0x60000014a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x17e03c37bbc0001
dataLength = 198
numChildren = 0
[zk: localhost:2181(CONNECTED) 5]
创建节点
使用 create path data
创建节点。
[zk: localhost:2181(CONNECTED) 8] create /t1 test1
Created /t1
[zk: localhost:2181(CONNECTED) 9] ls /
[cluster, controller, brokers, zookeeper, hbase-unsecure, dolphinscheduler, admin, isr_change_notification, log_dir_event_notification, hiveserver2, controller_epoch, hiveserver2-leader, kafka-manager, rmstore, atsv2-hbase-unsecure, ambari-metrics-cluster, consumers, latest_producer_id_block, config, t1]
[zk: localhost:2181(CONNECTED) 10] get /t1
test1
cZxid = 0x600001e24
ctime = Mon Jan 03 14:30:20 CST 2022
mZxid = 0x600001e24
mtime = Mon Jan 03 14:30:20 CST 2022
pZxid = 0x600001e24
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: localhost:2181(CONNECTED) 11]
创建临时节点
使用 create -e path data
创建临时节点。
[zk: localhost:2181(CONNECTED) 16] create -e /t1/e1 ephemeral_1
Created /t1/e1
[zk: localhost:2181(CONNECTED) 17] get /t1/e1
ephemeral_1
cZxid = 0x600001e2b
ctime = Mon Jan 03 14:35:17 CST 2022
mZxid = 0x600001e2b
mtime = Mon Jan 03 14:35:17 CST 2022
pZxid = 0x600001e2b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x17e03c37bbc0014
dataLength = 11
numChildren = 0
[zk: localhost:2181(CONNECTED) 18] quit
Quitting...
2022-01-03 14:35:45,076 - INFO [main:ZooKeeper@692] - Session: 0x17e03c37bbc0014 closed
2022-01-03 14:35:45,077 - INFO [main-EventThread:ClientCnxn$EventThread@517] - EventThread shut down
重新登录后 e1
节点消失。
[zk: localhost:2181(CONNECTED) 0] ls /t1
[]
[zk: localhost:2181(CONNECTED) 1]
创建顺序节点
使用 create -s path data
创建顺序节点。
[zk: localhost:2181(CONNECTED) 3] create -s /t1/s1 123
Created /t1/s10000000002
[zk: localhost:2181(CONNECTED) 4] create -s /t1/s1 123
Created /t1/s10000000003
[zk: localhost:2181(CONNECTED) 5] ls /t1
[s10000000002, s10000000003]
修改节点
使用 set path data
进行修改节点。
[zk: localhost:2181(CONNECTED) 1] create /t2 test2
Created /t2
[zk: localhost:2181(CONNECTED) 3] get /t2
test2
cZxid = 0x600001e99
ctime = Mon Jan 03 16:19:33 CST 2022
mZxid = 0x600001e99
mtime = Mon Jan 03 16:19:33 CST 2022
pZxid = 0x600001e99
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: localhost:2181(CONNECTED) 4] set /t2 test
cZxid = 0x600001e99
ctime = Mon Jan 03 16:19:33 CST 2022
mZxid = 0x600001e9d
mtime = Mon Jan 03 16:20:48 CST 2022
pZxid = 0x600001e99
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: localhost:2181(CONNECTED) 5] get /t2
test
cZxid = 0x600001e99
ctime = Mon Jan 03 16:19:33 CST 2022
mZxid = 0x600001e9d
mtime = Mon Jan 03 16:20:48 CST 2022
pZxid = 0x600001e99
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: localhost:2181(CONNECTED) 6]
删除节点
使用 delete path
删除指定路径的节点;
使用 rmr path
可循环删除路径下的节点。
[zk: localhost:2181(CONNECTED) 8] ls /t2
[]
[zk: localhost:2181(CONNECTED) 9] create /t2/a1 a1
Created /t2/a1
[zk: localhost:2181(CONNECTED) 10] create /t2/a2 a2
Created /t2/a2
[zk: localhost:2181(CONNECTED) 11] create /t2/a3 a3
Created /t2/a3
[zk: localhost:2181(CONNECTED) 12] ls /t2
[a1, a2, a3]
[zk: localhost:2181(CONNECTED) 13] delete /t2/a1
[zk: localhost:2181(CONNECTED) 14] ls /t2
[a2, a3]
[zk: localhost:2181(CONNECTED) 15] rmr /t2
[zk: localhost:2181(CONNECTED) 16] ls /
[cluster, controller, brokers, zookeeper, hbase-unsecure, dolphinscheduler, admin, isr_change_notification, log_dir_event_notification, hiveserver2, controller_epoch, hiveserver2-leader, kafka-manager, rmstore, atsv2-hbase-unsecure, ambari-metrics-cluster, consumers, latest_producer_id_block, config, t1]
[zk: localhost:2181(CONNECTED) 17]
设置节点配额
使用 setquota -n|-b val path
可限制节点的值的长度或其子节点的个数。
- -n 限制节点(包含当前节点)的个数为 val
- -b 限制节点值的长度为 val
- path 要限制的节点路径
限制节点数:
[zk: localhost:2181(CONNECTED) 1] create /t3 test3
Created /t3
[zk: localhost:2181(CONNECTED) 2] setquota -n 2 /t3
Comment: the parts are option -n val 2 path /t3
[zk: localhost:2181(CONNECTED) 3] create /t3/a1 a1
Created /t3/a1
[zk: localhost:2181(CONNECTED) 4] create /t3/a2 a2
Created /t3/a2
[zk: localhost:2181(CONNECTED) 5] create /t3/a3 a3
Created /t3/a3
[zk: localhost:2181(CONNECTED) 6] ls /t3
[a1, a2, a3]
[zk: localhost:2181(CONNECTED) 7]
超额,不会抛出异常,只是在日志中出现警告信息。
2022-01-03 16:38:33,532 - WARN [CommitProcessor:1:DataTree@302] - Quota exceeded: /t3 count=3 limit=2
2022-01-03 16:38:40,136 - WARN [CommitProcessor:1:DataTree@302] - Quota exceeded: /t3 count=4 limit=2
限制节点长度:
[zk: localhost:2181(CONNECTED) 9] create /t5 test5
Created /t5
[zk: localhost:2181(CONNECTED) 10] setquota -b 5 /t5
Comment: the parts are option -b val 5 path /t5
[zk: localhost:2181(CONNECTED) 11] create /t5/abc abc
Created /t5/abc
[zk: localhost:2181(CONNECTED) 12] create /t5/abcdef abcdef
Created /t5/abcdef
[zk: localhost:2181(CONNECTED) 13] ls /t5
[abcdef, abc]
[zk: localhost:2181(CONNECTED) 14]
同样,超出显示也不会报错,只是在日志中出现警告信息。
2022-01-03 16:59:33,229 - WARN [CommitProcessor:1:DataTree@348] - Quota exceeded: /t5 bytes=8 limit=5
2022-01-03 16:59:45,076 - WARN [CommitProcessor:1:DataTree@348] - Quota exceeded: /t5 bytes=14 limit=5
查看节点配额
[zk: localhost:2181(CONNECTED) 7] listquota /t3
absolute path is /zookeeper/quota/t3/zookeeper_limits
Output quota for /t3 count=2,bytes=-1
Output stat for /t3 count=4,bytes=11
[zk: localhost:2181(CONNECTED) 8]
[zk: localhost:2181(CONNECTED) 14] listquota /t5
absolute path is /zookeeper/quota/t5/zookeeper_limits
Output quota for /t5 count=-1,bytes=5
Output stat for /t5 count=3,bytes=14
[zk: localhost:2181(CONNECTED) 15]
删除节点配额
使用 delquota [-n|-b] path
删除配额信息
[zk: localhost:2181(CONNECTED) 15] delquota -n /t3
[zk: localhost:2181(CONNECTED) 18] delquota -b /t5
列出历史操作命令
[zk: localhost:2181(CONNECTED) 22] history
12 - create /t5/abcdef abcdef
13 - ls /t5
14 - listquota /t5
15 - delquota -n /t3
16 - listquota /t3
17 - delquota -b4 /t5
18 - delquota -b /t5
19 - listquota /t5
20 - ls /t3
21 - create /t3/a4 a4
22 - history
[zk: localhost:2181(CONNECTED) 23]
重新执行 history 中的命令
使用 redo cmdno
可以重新执行history中的命令
[zk: localhost:2181(CONNECTED) 23] redo 20
[a1, a2, a3, a4]
[zk: localhost:2181(CONNECTED) 24]
连接其他服务器
使用 connect host:port
可以连接其他服务器。
[zk: localhost:2181(CONNECTED) 0] connect master.bigdata:2181
2022-01-03 17:15:37,507 - INFO [main:ZooKeeper@692] - Session: 0x17e03c37bbc001a closed
2022-01-03 17:15:37,507 - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=master.bigdata:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1c655221
…………
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: master.bigdata:2181(CONNECTED) 1] ls /
[cluster, t5, controller, brokers, zookeeper, hbase-unsecure, dolphinscheduler, admin, isr_change_notification, log_dir_event_notification, hiveserver2, controller_epoch, hiveserver2-leader, kafka-manager, rmstore, atsv2-hbase-unsecure, ambari-metrics-cluster, consumers, latest_producer_id_block, config, t1, t3]
[zk: master.bigdata:2181(CONNECTED) 2] close
2022-01-03 17:16:08,866 - INFO [main:ZooKeeper@692] - Session: 0x27e03c37a4f000c closed
[zk: master.bigdata:2181(CLOSED) 3] 2022-01-03 17:16:08,867 - INFO [main-EventThread:ClientCnxn$EventThread@517] - EventThread shut down
[zk: master.bigdata:2181(CLOSED) 3] quit
Quitting...
[root@manager bin]#
ACL 访问控制
概述
Zookeeper类似于unix文件系统,节点类比文件,客户端可以删除节点,创建节点,修改节点。Zookeeper可以使用ACL(access control list)访问控制列表来对节点的权限进行控制。
acl 权限控制使用:scheme id permission 来标志,主要涵盖三个方面:
- 权限模式(scheme):授权的策略。
- 权限对象(id):授权的对象。
- 权限(permission):授予的权限。
权限模式种类
模式 | 描述 |
---|---|
world | 这种模式方法的授权对象只有一个anyone,代表登录到服务器的所有客户端都能对该节点执行某种权限 |
ip | 对连接的客户端使用IP地址认证方式进行认证 |
auth | 使用以添加认证的用户进行认证 |
digest | 使用 用户:密码方式验证 |
权限的类型
类型 | ACL简写 | 描述 |
---|---|---|
read | r | 读取节点及显示子节点列表的权限 |
write | w | 设置节点数据的权限 |
create | c | 创建子节点的权限 |
delete | d | 删除子节点的权限 |
admin | a | 设置该节点ACL权限的权限 |
关于授权的命令
命令 | 用法 | 描述 |
---|---|---|
getAcl | getAcl path | 读取节点的 ACL |
setAcl | setAcl path acl | 设置节点的 ACL |
create | create path data acl | 创建节点时设置 ACL |
addAuth | addAuth scheme auth | 添加认证用户,类似于登录操作 |
示例
[zk: localhost:2181(CONNECTED) 4] create /test/ta t1
Created /test/ta
[zk: localhost:2181(CONNECTED) 5] getAcl /test/ta
'world,'anyone
: cdrwa
[zk: localhost:2181(CONNECTED) 6]
[zk: localhost:2181(CONNECTED) 6] setAcl /test/ta world:anyone:cdwa
cZxid = 0x800000093
ctime = Tue Mar 22 15:38:03 CST 2022
mZxid = 0x800000093
mtime = Tue Mar 22 15:38:03 CST 2022
pZxid = 0x800000093
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: localhost:2181(CONNECTED) 7] getAcl /test/ta
'world,'anyone
: cdwa
[zk: localhost:2181(CONNECTED) 8] get /test/ta
Authentication is not valid : /test/ta
[zk: localhost:2181(CONNECTED) 9]
[zk: localhost:2181(CONNECTED) 9] setAcl /test/ta world:anyone:cdrwa
cZxid = 0x800000093
ctime = Tue Mar 22 15:38:03 CST 2022
mZxid = 0x800000093
mtime = Tue Mar 22 15:38:03 CST 2022
pZxid = 0x800000093
cversion = 0
dataVersion = 0
aclVersion = 2
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: localhost:2181(CONNECTED) 10] get /test/ta
t1
cZxid = 0x800000093
ctime = Tue Mar 22 15:38:03 CST 2022
mZxid = 0x800000093
mtime = Tue Mar 22 15:38:03 CST 2022
pZxid = 0x800000093
cversion = 0
dataVersion = 0
aclVersion = 2
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: localhost:2181(CONNECTED) 11]
[zk: localhost:2181(CONNECTED) 16] create /test2 t2
Created /test2
[zk: localhost:2181(CONNECTED) 18]
[zk: localhost:2181(CONNECTED) 18] addauth digest hdfs:123456
[zk: localhost:2181(CONNECTED) 19] setAcl /test2 auth:hdfs:cdrwa
cZxid = 0x800000099
ctime = Tue Mar 22 15:46:58 CST 2022
mZxid = 0x800000099
mtime = Tue Mar 22 15:46:58 CST 2022
pZxid = 0x800000099
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: localhost:2181(CONNECTED) 20]
[zk: localhost:2181(CONNECTED) 20] getAcl /test2
'digest,'hdfs:w071ZtmzC5+0fMHyY6QQSDnW3YY=
: cdrwa
[zk: localhost:2181(CONNECTED) 21]
四字命令
- 启用四字命令
在配置文件 zoo.cfg
添加如下配置:
4lw.commands.whitelist=*
- conf
打印服务配置详细信息。
[root@manager ~]# echo conf | nc 127.0.0.1 2181
clientPort=2181
dataDir=/hadoop/zookeeper/version-2
dataLogDir=/hadoop/zookeeper/version-2
tickTime=3000
maxClientCnxns=60
minSessionTimeout=6000
maxSessionTimeout=60000
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0
[root@manager ~]#
- cons
列出连接到此服务器的所有客户端的完整连接/会话详细信息。
[root@manager80 ~]# echo cons | nc 127.0.0.1 2181
/127.0.0.1:56412[0](queued=0,recved=1,sent=0)
/10.180.249.80:36610[1](queued=0,recved=11248,sent=11248,sid=0x200000487520016,lop=PING,est=1648707979813,to=60000,lcxid=0x941,lzxid=0xffffffffffffffff,lresp=180432277,llat=0,minlat=0,avglat=0,maxlat=4)
/10.180.249.81:57640[1](queued=0,recved=8882,sent=8884,sid=0x100002b03ce0000,lop=PING,est=1648707956970,to=60000,lcxid=0x7,lzxid=0xffffffffffffffff,lresp=180429864,llat=0,minlat=0,avglat=0,maxlat=10)
/10.180.249.81:57642[1](queued=0,recved=9023,sent=9036,sid=0x30000047001000a,lop=PING,est=1648707956983,to=60000,lcxid=0x5a0,lzxid=0xffffffffffffffff,lresp=180440871,llat=0,minlat=0,avglat=0,maxlat=18)
/10.180.249.80:36612[1]
- envi
打印有关服务环境的详细信息。
[root@manager80 ~]# echo envi |nc 127.0.0.1 2181
Environment:
zookeeper.version=3.4.14--1, built on 01/20/2021 05:51 GMT
host.name=manager80.bigdata
java.version=1.8.0_121
java.vendor=Oracle Corporation
java.home=/usr/jdk64/java/jre
java.class.path=/usr/hdp/current/zookeeper-server/bin/../build/classes:/usr/hdp/current/zookeeper-server/bin/../build/lib/*.jar:/usr/hdp/current/zookeeper-server/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/hdp/current/zookeeper-server/bin/../lib/slf4j-api-1.7.25.jar:/usr/hdp/current/zookeeper-server/bin/../lib/netty-3.10.6.Final.jar:/usr/hdp/current/zookeeper-server/bin/../lib/log4j-1.2.17.jar:/usr/hdp/current/zookeeper-server/bin/../lib/jline-0.9.94.jar:/usr/hdp/current/zookeeper-server/bin/../lib/audience-annotations-0.5.0.jar:/usr/hdp/current/zookeeper-server/bin/../zookeeper-3.4.14.jar:/usr/hdp/current/zookeeper-server/bin/../src/java/lib/*.jar:/usr/hdp/current/zookeeper-server/conf:/usr/jdk64/java/lib:/usr/share/zookeeper/*:/usr/share/zookeeper/*
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-693.el7.x86_64
user.name=zookeeper
user.home=/home/zookeeper
user.dir=/home/zookeeper
[root@manager ~]#
- srvr
列出服务器的完整详细信息。
[root@manager80 ~]# echo srvr |nc 127.0.0.1 2181
Zookeeper version: 3.4.14--1, built on 01/20/2021 05:51 GMT
Latency min/avg/max: 0/0/2558
Received: 141以上是关于Zookeeper常用命令的主要内容,如果未能解决你的问题,请参考以下文章
Zookeeper -- 初识ZookeeperZookeeper的安装和配置Zookeeper命令操作(Zookeeper数据模型 Zookeeper服务端 / 客户端常用命令)