美文网首页我爱编程
zookeeper客户端命令详解

zookeeper客户端命令详解

作者: 困火 | 来源:发表于2018-05-28 10:44 被阅读65次

    想要用zkClient链接zookeeper,首先要连接到zookeeper server
    ./zkCli.sh -server localhost:2181 #链接到zookeeper

    help命令

    help命令用于查询客服端所支持的所用的命令,执行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
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit 
        getAcl path
        close    close命令用于关闭与服务端的链接
        connect host:port   连接zk服务端,与close命令配合使用可以连接或者断开zk服务端
    

    get命令

    get命令用于获取节点的信息,注意节点的路径必须是以/开头的绝对路径。如get /

    cZxid = 0x0    #节点创建时的zxid
    ctime = Thu Jan 01 08:00:00 CST 1970    #节点创建时间
    mZxid = 0x0   #节点最近一次更新时的zxid
    mtime = Thu Jan 01 08:00:00 CST 1970   #节点最近一次更新的时间
    pZxid = 0x1469   #
    cversion = 3   #子节点数据更新次数
    dataVersion = 0   #本节点数据更新次数
    aclVersion = 0    #节点ACL(授权信息)的更新次数
    ephemeralOwner = 0x0    #如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
    dataLength = 0  #节点数据长度
    numChildren = 4  #子节点个数
    

    stat命令

    stat命令用于查看节点的状态信息,如stat /

    (该命令的结果参数说明同get命令)
    cZxid = 0x0   #
    ctime = Thu Jan 01 08:00:00 CST 1970
    mZxid = 0x0
    mtime = Thu Jan 01 08:00:00 CST 1970
    pZxid = 0x1469
    cversion = 3
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 4
    

    set命令

    set命令用于设置节点的数据,如:
    set /usergrid hellUsergrid

    ls命令

    ls命令用于获取路径下的节点信息,注意路径为绝对路径,如:ls /storm

    [assignments, storms, errors, supervisors, workerbeats]
    

    ls2命令

    ls2命令是ls命令的增强版,比ls命令多输出本节点信息,如:ls2 /storm

    [assignments, storms, errors, supervisors, workerbeats]
    cZxid = 0x1469
    ctime = Tue Nov 14 11:32:09 CST 2017
    mZxid = 0x1469
    mtime = Tue Nov 14 11:32:09 CST 2017
    pZxid = 0x1470
    cversion = 5
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 1
    numChildren = 5
    

    listquota命令

    listquota命令用于显示配额,如listquota /storm

    setquota命令

    setquota命令用于设置节点个数以及数据长度的配额,如:

    setquota –n 4 /zookeeper/node   #设置/zookeeper/node子节点个数最大为4
    setquota –b 100 /zookeeper/node  #设置/zookeeper/node节点长度最大为100
    

    delquota命令

    delquota命令用于删除配额,-n为子节点个数,-b为节点数据长度,如:delquota –n 2

    history命令

    history用于列出最近的命令历史,可以和redo配合使用。如history

    redo命令

    redo命令用于再次执行某个命令,使用方式为redo cmdid 如 redo 20,常与history配合使用

    create命令

    create命令用于创建节点,其中-s为顺序充点,-e临时节点

    delete命令

    delete命令用于删除节点,如delete /nodeDelete

    addauth命令

    addauth命令用于节点认证,使用方式:如addauth digest username:password

    setAcl命令

    setAcl命令用于设置节点Acl

    Acl由三部分构成:1为scheme,2为user,3为permission,一般情况下表示为scheme:id:permissions

    getAcl命令

    获取节点的Acl,如getAcl /node1

    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

    sync命令

    sync命令用于强制同步,由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作

    printwatchers命令

    printWatchers命令用于设置和显示监视状态,值为on或则off

    quit命令

    退出客户端

    相关文章

      网友评论

        本文标题:zookeeper客户端命令详解

        本文链接:https://www.haomeiwen.com/subject/izuwjftx.html