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简写描述
readr读取节点及显示子节点列表的权限
writew设置节点数据的权限
createc创建子节点的权限
deleted删除子节点的权限
admina设置该节点ACL权限的权限

关于授权的命令

命令用法描述
getAclgetAcl path读取节点的 ACL
setAclsetAcl path acl设置节点的 ACL
createcreate path data acl创建节点时设置 ACL
addAuthaddAuth 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服务端 / 客户端常用命令)

ZooKeeper 常用命令

ZooKeeper 常用命令

ZooKeeper基础-数据结构服务端/客户端常用命令

Zookeeper服务常用的操作命令

zookeeper常用命令