zk常用的命令

文章介绍了ZooKeeper集群的日志分析,强调了启动时的异常是正常的,并提供了通过JPS查看进程ID的方法。还详述了ZK服务的启动、停止和状态检查命令。接着,列出了zk客户端的主要命令,如ls、create、get、set、delete等,并讲解了如何区分临时节点和永久节点。最后,给出了使用zkCli.sh连接ZK集群的示例。

查看ZK输出日志和进程信息

#日志输出文件
/data/zookeeper.out

        由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。通过后面部分可以看到,集群在选出一个Leader后,最后稳定了。

其他结点可能也出现类似问题,属于正常。

通过  JPS  查看进程ID

去查看进程ID文件,再到FD目录就能查看到当前进程所使用的管道信息

cd /proc/进程id

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运行的状态
./ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh status

#整体停止服务
./ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh stop 

查看状态结果:

3.2 zk客户端命令

  • 1. 显示根节点下的子节点: ls / 
  • 2. 显示根目录下的子节点和说明信息: ls2 
  • 3. 创建znode,并设置初始内容

                创建永久节点:create /zk "节点内容" 

                创建临时节点:create -e /zk/app "节点内容"

                创建时序节点:create -s /zk/app/s1 "节点内容"

  • 4. 获取节点内容: get /zk 
  • 5. 修改节点内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
  • 6. 删除节点(此种方式该节点下不能有子节点): delete /zk 
  • 7. 删除节点和所有子节点:rmr /zk
  • 7. 退出客户端: quit
  • 8. 帮助命令: help

#启动zkclient,并连接zookeeper集群
/usr/local/zookeeper/bin/zkCli.sh -server nn1.hadoop:2181,nn2.hadoop:2181,s1.hadoop:2181

nn1机器客户端登录

cZxid:创建节点时的事务id

pZxid:子节点列表最后一次被修改的事务id

cversion:节点版本号

dataCersion:数据版本号

aclVerson:acl权限版本号

如何查看是临时节点还是永久节点?

        当get 节点信息时,其中有一个字段是ephemeralOwner意思是这个节点的临时拥有者。

        当ephemeralOwner 值不为0时,表明这个节点是临时节点,值为会话id。

        当ephemeralOwner 值为0时,表明这个节点是永久节点。.

### 如何通过命令行检查 Zookeeper 版本 在 Zookeeper命令行工具中,可以通过特定的四字母单词命令来获取 Zookeeper 的版本信息。以下是具体方法: #### 使用 `srvr` 或 `stat` 命令 Zookeeper 提供了一个名为四字母单词的功能,允许管理员执行一些管理操作并检索状态信息。其中两个常用命令可以用来查询版本信息。 1. **`srvr` 命令** 这是一个返回服务器详细统计信息的命令,其中包括 Zookeeper 的版本号。运行此命令的方式如下: ```bash echo srvr | nc localhost 2181 ``` 输出的结果中会有类似于以下的内容,标明当前使用的 Zookeeper 版本: ``` Zxid: 0x1000000c7 Mode: standalone Node count: 9 Version: 3.6.0 [^4] ``` 2. **`stat` 命令** 另一种方式是使用 `stat` 命令,它提供更简洁的信息摘要,同样也包含了版本字段。 ```bash echo stat | nc localhost 2181 ``` 结果可能看起来像这样: ``` Zookeeper version: 3.6.0, built on ... [^4] Clients: /127.0.0.1:51792 [1] (queued=0,recved=1,sent=0) Latency min/avg/max: ... Received: ... Sent: ... Connections: ... Outstanding: ... Zxid: ... Mode: ... Node count: ... ``` 以上两种方法都可以帮助用户快速确认正在运行的 Zookeeper 实例的具体版本号。 --- #### 注意事项 - 如果是在 Windows 平台下操作,则需要替换 `nc` 工具为其他网络通信工具或者直接利用 PowerShell 的功能实现类似的请求发送逻辑。 - 需要确保客户端能够访问到 Zookeeper 所监听的服务端口,默认情况下该端口号为 2181[^2]。 ```powershell echo "srvr" | powershell -Command "& { $socket = New-Object Net.Sockets.TcpClient('localhost', 2181); \$stream = \$socket.GetStream(); \$writer = New-Object IO.StreamWriter(\$stream); \$reader = New-Object IO.StreamReader(\$stream); \$writer.WriteLine('srvr'); \$writer.Flush(); \$response = \$reader.ReadToEnd(); Write-Output \$response; }" ``` 上述脚本展示了如何在 Windows 下借助 PowerShell 来完成同样的任务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值