Untitled

title: "管理ZooKeeper"
date: 2019-12-15T20:50:40+08:00
draft: true
#pre: "<b>1. </b>"
weight: 10

部署完ZooKeeper,开始可以使用API操作zk,运维可以使用命令行或者可视化客户端。

连接zk操作

bin/zkCli.sh -server 192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181

成功连接后,可以看到如下输出:

客户端连接zk集群的输出日志

从日志输出可以看到,客户端连接的是192.168.229.162:2181进程(连接上哪台机器的zk进程是随机的),客户端已成功连接上zk集群。

连接成功后,便可以使用命令与zk服务进行交互。

help:输出zk支持的所有命令

[zk: 127.0.0.1:2182(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:查看指定路径下包含的节点

create:创建一个节点

以上命令创建一个/zk节点,且其内容为 “myData”

get:显示指定路径下节点的信息,例如,我们检查一下上面的/zk节点最否创建成功

可以看到/zk节点的内容为”myData”,且输出包含了znode的其他信息。有关各个字段的具体含义,请参见了本博客对znode的介绍。

set:设置节点的内容

delete:删除一个节点

以上就是zk客户端最常用的几个命令,从这几个命令我们也可以看到zk提供的API设计的简单。

四字母命令

ZooKeeper提供了多个由4个字母构成的命令,可以使用nc或者telnet来使用这些命令。例如:

成功连接zk后,输入conf 会看到以下输出

或者使用nc来向zk发送4字母命令,例如:

其他常用的四字母命令如下表格所示:

表格:ZooKeeper提供的四字母命令

命令

描述

conf

zk服务配置的详细信息

stat

客户端与zk连接的简要信息

srvr

zk服务的详细信息

cons

客户端与zk连接的详细信息

mntr

zk服务目前的性能状况

wchs

watch的简要信息

wchc

watch的详细信息,客户端 -> watch的映射,线上环境要小心使用

wchp

watch的详细信息, znode -> 客户端的映射,线上环境要小心使用

例如,mntr 命令的输出:

最后更新于