熟悉Zookeeper命令
- 查看 zkServer.sh 帮助信息
zkServer.sh help
- 启动/关闭 zk服务器
zkServer.sh start
zkServer.sh stop
- 查看服务器状态
zkServer.sh status
zkCli:连接zk的命令
zkCli.sh -server localhost:2181
[root@hadoop01 bin]# zkCli.sh -server localhost:2181
Connecting to localhost:2181
2020-03-25 16:25:27,937 [myid:] - INFO [main:Environment@109] - Client environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2020-03-25 16:25:27,942 [myid:] - INFO [main:Environment@109] - Client environment:host.name=hadoop01
2020-03-25 16:25:27,942 [myid:] - INFO [main:Environment@109] - Client environment:java.version=1.8.0_211
2020-03-25 16:25:27,943 [myid:] - INFO [main:Environment@109] - Client environment:java.vendor=Oracle Corporation
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:java.home=/opt/app/jdk/jre
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:java.class.path=/opt/app/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/classes:/opt/app/apache-zookeeper-3.5.5-bin/bin/../build/classes:/opt/app/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/lib/*.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../build/lib/*.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-jute-3.5.5.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-3.5.5.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-api-1.7.25.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/netty-all-4.1.29.Final.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/log4j-1.2.17.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/json-simple-1.1.1.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jline-2.11.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-util-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-servlet-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-server-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-security-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-io-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-http-9.4.17.v20190418.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-databind-2.9.8.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-core-2.9.8.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-annotations-2.9.0.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/commons-cli-1.2.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../lib/audience-annotations-0.5.0.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../zookeeper-*.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/app/apache-zookeeper-3.5.5-bin/bin/../conf:
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:java.io.tmpdir=/tmp
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:java.compiler=<NA>
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:os.name=Linux
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:os.arch=amd64
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:os.version=3.10.0-693.el7.x86_64
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:user.name=root
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:user.home=/root
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:user.dir=/opt/app/apache-zookeeper-3.5.5-bin/bin
2020-03-25 16:25:27,944 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.free=11MB
2020-03-25 16:25:27,946 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.max=247MB
2020-03-25 16:25:27,946 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.total=15MB
2020-03-25 16:25:27,948 [myid:] - INFO [main:ZooKeeper@868] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@66cd51c3
2020-03-25 16:25:27,951 [myid:] - INFO [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2020-03-25 16:25:27,956 [myid:] - INFO [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes
2020-03-25 16:25:27,963 [myid:] - INFO [main:ClientCnxn@1653] - zookeeper.request.timeout value is 0. feature enabled=
2020-03-25 16:25:27,969 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1112] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2020-03-25 16:25:28,051 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /127.0.0.1:34314, server: localhost/127.0.0.1:2181
2020-03-25 16:25:28,087 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100000526940001, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
命令 | 功能 |
---|---|
help | 查看帮助 |
ls | 查看当前目录下列表 |
stat | 获得节点的更新信息 |
create /a tom | 不能创建空节点,必须携带数据 |
create -e | 创建临时节点,过后就无 |
create -s | 创建顺序节点 自动累加 |
get /a | 查看数据 |
set /a tom | 设置数据 |
delete /a | 删除一个节点 |
rmr /a | 递归删除所有节点。 |
get /a watch | 监听数据变化 |
ls /a | 监听目录变化 |
quit | 退出 |
- 查看帮助help
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path
- 查看当前目录下列表
[zk: localhost:2181(CONNECTED) 1] ls / #当前目录下只有两个
[hbase, zookeeper]
- 不能创建空节点,必须携带数据
[zk: localhost:2181(CONNECTED) 8] create /test tom
Created /test
以上命令创建一个/test节点,且其内容为 “tom”
4.查看数据
[zk: localhost:2181(CONNECTED) 14] get /zookeeper ###下面空行说明节点内容为空
[zk: localhost:2181(CONNECTED) 15]
5.设置数据
[zk: localhost:2181(CONNECTED) 15] set /test "6666"
[zk: localhost:2181(CONNECTED) 16] get /test
6666
6.删除节点
[zk: localhost:2181(CONNECTED) 18] delete /test
[zk: localhost:2181(CONNECTED) 19] ls /
[hbase, zookeeper]
7.watcher通知机制
关于watcher机制大体的理解可以为,当每个节点发生变化,都会触发watcher事件,类似于mysql的触发器。zk中 watcher是一次性的,触发后立即销毁。
四字命令Four Letter Words
- 使用四字命令需要安装nc命令,(yum install nc)
- ZooKeeper 支持某些特定的四字命令(The Four Letter Words)与其进行交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。
ZooKeeper四字命令 | 功能描述 |
---|---|
conf | 3.3.0版本引入的。打印出服务相关配置的详细信息。 |
cons | 3.3.0版本引入的。列出所有连接到这台服务器的客户端全部连接/会话详细信息。包括"接受/发送"的包数量、会话id、操作延迟、最后的操作执行等等信息。 |
crst | 3.3.0版本引入的。重置所有连接的连接和会话统计信息。 |
dump | 列出那些比较重要的会话和临时节点。这个命令只能在leader节点上有用。 |
envi | 打印出服务环境的详细信息。 |
reqs | 列出未经处理的请求 |
ruok | 测试服务是否处于正确状态。如果确实如此,那么服务返回"imok",否则不做任何相应。 |
stat | 输出关于性能和连接的客户端的列表。 |
srst | 重置服务器的统计。 |
srvr | 3.3.0版本引入的。列出连接服务器的详细信息 |
wchs | 3.3.0版本引入的。列出服务器watch的详细信息。 |
wchc | 3.3.0版本引入的。通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表。 |
wchp | 3.3.0版本引入的。通过路径列出服务器watch的详细信息。它输出一个与session相关的路径。 |
mntr | 3.4.0版本引入的。输出可用于检测集群健康状态的变量列表 |
使用方法
echo stat | nc ip 2181 #例如 :echo stat | nc 192.168.0.68 2181