Zookeeper是一个分布式的、高可靠性的、高性能的协调服务,为构建大规模分布式系统提供了有力支持。Zookeeper的数据结构为树形结构,它的节点称为znode,每个znode是用于存储数据的一个节点。zkcli是Zookeeper的命令行客户端,它提供了一个交互式命令行界面,可以通过zkcli来管理Zookeeper服务器。本篇文章将从zkcli命令详解、zkcli命令查看集群状态、zkcli远程连接命令三方面来介绍zkcli。
一、zkcli命令详解
zkcli命令行客户端提供了一系列命令,可以通过这些命令来管理zk服务器。下面介绍zkcli中常用的命令。
1、help - 帮助命令
zookeeper@localhost:2181:> 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 help quit
执行help命令可以查看zkcli的所有命令,以及命令的作用。
2、create - 创建节点命令
zookeeper@localhost:2181:> create /test "hello world" Created /test
执行create命令可以在指定的路径下创建一个节点,-s表示节点是顺序节点,-e表示节点是临时节点。
3、get - 获取节点数据命令
zookeeper@localhost:2181:> get /test hello world cZxid = 0xc ctime = Wed Dec 09 00:52:04 CST 2020 mZxid = 0xc mtime = Wed Dec 09 00:52:04 CST 2020 pZxid = 0xc cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 11 numChildren = 0
执行get命令可以获取指定节点的数据信息。
4、ls - 列出子节点命令
zookeeper@localhost:2181:> ls / [test]
执行ls命令可以列出指定路径下的子节点。
5、set - 修改节点数据命令
zookeeper@localhost:2181:> set /test "new data" cZxid = 0xc ctime = Wed Dec 09 00:52:04 CST 2020 mZxid = 0xd mtime = Wed Dec 09 00:54:30 CST 2020 pZxid = 0xc cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0
执行set命令可以修改指定节点的数据信息。
二、zkcli命令查看集群状态
zkcli命令行客户端提供了查看集群状态的命令,来帮助我们了解集群的运行状态。
1、stat - 查看节点状态命令
zookeeper@localhost:2181:> stat / Zookeeper version: 3.5.7-f0fdd52973d373ffd9c86b81d99842dc2c7f660e, built on 02/10/2020 11:30 GMT Clients: /127.0.0.1:49530[0](queued=0,recved=1,sent=0) /127.0.0.1:55000[1](queued=0,recved=1,sent=0) Latency min/avg/max: 1/2/5 Received: 2 Sent: 1 Connections: 2 Outstanding: 0 Zxid: 0x4 Mode: follower Node count: 4
执行stat命令可以查看指定节点的状态信息,包括版本号、客户端、延迟、连接数等信息。
2、srvr - 查看服务器状态命令
zookeeper@localhost:2181:> srvr Zookeeper version: 3.5.7-f0fdd52973d373ffd9c86b81d99842dc2c7f660e, built on 02/10/2020 11:30 GMT Latency min/avg/max: 0/0/0 Received: 2 Sent: 1 Connections: 1 Outstanding: 0 Zxid: 0x40000000e Mode: standalone Node count: 4 0 277 1048576000 Thu Dec 03 18:25:24 CST 2020 dataDir version=0x40000000e txnlog=0x40000000f
执行srvr命令可以查看Zookeeper服务器的状态信息。
三、zkcli远程连接命令
我们可以通过zkcli连接远程的Zookeeper服务器,进行远程管理。
1、connect - 连接命令
zookeeper@localhost:2181:> connect remote_host:port
执行connect命令可以连接指定的远程Zookeeper服务器。
2、close - 关闭连接命令
zookeeper@localhost:2181:> close
执行close命令可以关闭当前连接到的Zookeeper服务器。
3、addauth - 认证命令
zookeeper@localhost:2181:> addauth digest username:password
执行addauth命令可以使用指定的用户名和密码对远程Zookeeper服务器进行认证。
4、reconfig - 重新配置命令
zookeeper@localhost:2181:> reconfig -add server.id=server:port:port:participant;server.id=server:port:port:participant
执行reconfig命令可以重新配置远程Zookeeper服务器的参与者。
5、ruok - 健康检查命令
zookeeper@localhost:2181:> ruok imok
执行ruok命令可以检查远程Zookeeper服务器是否正常。