zoukankan      html  css  js  c++  java
  • ZK_命令大全

    说明

      Linux安装ZK:https://www.cnblogs.com/chunxiaozhang/p/12752944.html

      ZK_入门学习:https://www.cnblogs.com/chunxiaozhang/p/12753009.html

    命令查询

    通过命令行可查看zk支持的所有命令,如下:
        
        [zk: 127.0.0.1:2181(CONNECTED) 2] cmd args
        ZooKeeper -server host:port cmd args
            addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
            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 [-b batch size]
            delquota [-n|-b] path
            get [-s] [-w] path
            getAcl [-s] path
            getAllChildrenNumber path
            getEphemerals path
            history 
            listquota path
            ls [-s] [-w] [-R] path
            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]
            set [-s] [-v version] path data
            setAcl [-s] [-v version] [-R] path acl
            setquota -n|-b val path
            stat [-w] path
            sync path
            version 
        Command not found: Command not found cmd

    命令详解

      1、系统命令

    //系统命令
        close 
            关闭其他连接
        connect host:port
            连接其他节点
        version 
            查看版本信息
        quit
            退出
        history 
            查看历史命令
        redo cmdno        
            redo命令用于再次执行某个命令,使用方式为redo cmdid 如 redo 20,常与history配合使用
        addauth scheme auth    
            addauth命令用于节点认证,使用方式:如addauth digest username:password
        sync path    
            sync命令用于强制同步,由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作。
        

      2、配置命令

    //配置信息
        config [-c] [-w] [-s]
        
        reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]

      3、节点命令

    //节点信息    
        /**节点创建**/
        create [-s] [-e] [-c] [-t ttl] path [data] [acl]
            创建节点:
                -s:顺序节点
                -e:临时节点
                -c:
                -t ttl:
                path:节点路径
                data:节点数据
                acl:节点权限
            例:create /zktest first-zk     //创建永久节点/zktest,缺省为永久,节点数据为first-zk
        
        set [-s] [-v version] path data
            设置节点数据,存在则覆盖
            -s:
            -v version:
            例如:set /zktest newvalue
    
        delete [-v version] path
            删除节点
            -v version:
            
        deleteall path [-b batch size]
            调件删除节点
            -b batch size
            
        /**节点查询**/
        getAllChildrenNumber path
            获取节点下所有持久节点数量(包括子节点的子节点)
        getEphemerals path
            获取节点下所有临时节点数量(包括子节点的子节点)
        stat [-w] path
            列出节点信息
            -w:
            
            节点信息查询
            [zk: 127.0.0.1:2182(CONNECTED) 33] stat /zktest
            cZxid = 0x100000008        //节点创建时的zxid
            ctime = Thu Apr 23 10:37:02 CST 2020        //节点创建时间
            mZxid = 0x100000008        //节点最近一次更新时的zxid
            mtime = Thu Apr 23 10:37:02 CST 2020        //节点最近一次更新的时间
            pZxid = 0x100000009        //
            cversion = 1        //子节点数据更新次数
            dataVersion = 0        //本节点数据更新次数
            aclVersion = 0        //节点ACL(授权信息)的更新次数
            ephemeralOwner = 0x0        //如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
            dataLength = 8        //节点数据长度
            numChildren = 1        //子节点个数
    
        get [-s] [-w] path
            获取节点数据data
            -s:获取节点数据,额外列出节点stat信息
            -w:
            
            获取数据
            [zk: 127.0.0.1:2182(CONNECTED) 34] get /zktest
            first-zk
        
        ls [-s] [-w] [-R] path
            列出节点目录,只列出一层目录
            -s:列出节点目录,额外列出节点stat信息
            -w:
            
            列出目录
            [zk: 127.0.0.1:2182(CONNECTED) 35] ls /zktest
            [f1]

      4、配额命令

    //quota信息
        listquota path
            列除节点设置的配额信息
            
        setquota -n|-b val path
            设置节点配额信息
            -n:子节点最大数量
            -b:节点最大长度
            
            例如:setquota -n 10 -b 100 /zktest
            
        delquota [-n|-b] path
            删除节点的配额信息

      5、权限命令

    //权限操作
    
        /**
            1、ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限
            2、每个znode支持设置多种权限控制方案和多个权限
            3、子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点
            4、auth、digest的模式必须使用addauth认证,一次连接可认证多个用户,关闭后失效
        **/
        addauth scheme auth    
            addauth命令用于节点认证,使用方式:如addauth digest username:password
            
        getAcl [-s] path
            获取节点权限信息
            -s:获取节点权限信息,额外获取节点stat信息
            
            权限信息由三部分组成:<Schema>:<ID>:<Permission>
            Schema:授权模式:world(默认代表所有人anyone)、ip(使用IP地址认证)、auth(使用已添加认证的用户认证)、digest(使用“用户名:密码”方式认证)
            ID:授权对象,以设定的schema模式形成映射关系,用于认证
            permission:权限:CREATE(可以创建子节点)、DELETE(可以删除子节点,仅下一级节点)、READ(可以读取节点数据及显示子节点列表)、WRITE(可以设置节点数据)、ADMIN(可以设置节点访问控制列表权限)
                
        setAcl [-s] [-v version] [-R] path acl
            设置节点权限信息
            -s:
            -v ersion:
            -R:
            path:节点路径
            acl:权限信息<Schema>:<ID>:<Permission>
            
         world模式:setAcl /zktest world:anyone:cdrwa
            ip模式:setAcl /zktest ip:192.168.1.1:cdr
            auth模式:setAcl /zktest/f1/f1-1 auth:zhang:cdrw //此模式设置权限前必须先添加认证用户,使用addauth命令
            digest模式:setAcl /zktest/f1/f1-1 digest:zhang:UiSDb/vR/ydnWXx3EpPrRF4LvRw=:cdrw //此模式UiSDb/vR/ydnWXx3EpPrRF4LvRw=部分必须为【user:password】的加密内容
                echo -n li:123456 | openssl dgst -binary -sha1 | openssl base64 //密码加密

      6、监视器命令

    //监视器操作
        printwatches on|off
        addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
        removewatches path [-c|-d|-a] [-l]

     四字命令

      1、说明

    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版本引入的。输出可用于检测集群健康状态的参数列表。

      2、环境配置

    zookeeper必须开启四字命令才能使用,修改zoo.cfg添加如下开启
        4lw.commands.whitelist=*
    
    telnet、nc在服务器可能并未安装,安装如下:
        telnet:
            [root@localhost ~]# rpm -qa telnet-server //检测telnet-server的安装
            [root@localhost ~]# yum install telnet-server    //安装telnet-server
            [root@localhost ~]# rpm -qa telnet    //检测telnet的安装
            [root@localhost ~]# yum install telnet    //安装telnet
            [root@localhost ~]# rpm -qa | grep xinetd //telnet 是挂在 xinetd 底下的,所以同时查看是否安装了xinetd服务
            [root@localhost ~]# yum install xinetd    //安装xinetd
            [root@localhost ~]# systemctl start xinetd    //启动xinetd
            [root@localhost ~]# systemctl start telnet.socket    //启动telnet
            
            /**设置telnet开机启动,需要时进行以下配置**/
            [root@localhost ~]# systemctl enable xinetd.service
            [root@localhost ~]# systemctl enable telnet.socket
            
        nc:
            [root@bogon ~]# yum install -y nc //安装nc
            [root@bogon ~]# nc -vuz 127.0.0.1 2181    //查看端口连接情况
            
        使用:
            [root@bogon ~]# telnet localhost 2181  //进入telnet端,输入相应四字命令,查询信息
            [root@bogon ~]# echo conf | nc localhost 2181     //直接查询
            [root@bogon ~]# nc localhost 2181     //进入nc客户端,输入相应四字命令,查询信息

      3、命令详解

    conf:
        clientPort:客户端端口号 
        dataDir:数据文件目录
        dataLogDir:日志文件目录  
        tickTime:间隔单位时间
        maxClientCnxns:最大连接数  
        minSessionTimeout:最小session超时
        maxSessionTimeout:最大session超时  
        serverId:id  
        initLimit:初始化时间  
        syncLimit:心跳时间间隔  
        electionAlg:选举算法 默认3  
        electionPort:选举端口  
        quorumPort:法人端口  
        peerType:未确认
     
    cons:
        ip=ip
        port=端口
        queued=所在队列
        received=收包数
        sent=发包数
        sid=session id
        lop=最后操作
        est=连接时间戳
        to=超时时间
        lcxid=最后id(未确认具体id)
        lzxid=最后id(状态变更id)
        lresp=最后响应时间戳
        llat=最后/最新 延时
        minlat=最小延时
        maxlat=最大延时
        avglat=平均延时
     
    crst:
        重置所有连接
     
    dump:
        session id : znode path  (1对多   ,  处于队列中排队的session和临时节点)
     
    envi:
        zookeeper.version=版本
        host.name=host信息
        java.version=java版本
        java.vendor=供应商
        java.home=jdk目录
        java.class.path=classpath
        java.library.path=lib path
        java.io.tmpdir=temp目录
        java.compiler=<NA>
        os.name=Linux
        os.arch=amd64
        os.version=2.6.32-358.el6.x86_64
        user.name=hhz
        user.home=/home/hhz
        user.dir=/export/servers/zookeeper-3.4.6
        
    ruok:
        imok=正常,查看server是否正常
        
    srst:
        重置server状态
        
    srvr:
        Zookeeper version:版本
        Latency min/avg/max: 延时
        Received: 收包
        Sent: 发包
        Connections: 连接数
        Outstanding: 堆积数
        Zxid: 操作id
        Mode: leader/follower
        Node count: 节点数
        
    stat:
        Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
        Clients:
                 /192.168.147.102:56168[1](queued=0,recved=41,sent=41)
                 /192.168.144.102:34378[1](queued=0,recved=54,sent=54)
                 /192.168.162.16:43108[1](queued=0,recved=40,sent=40)
                 /192.168.144.107:39948[1](queued=0,recved=1421,sent=1421)
                 /192.168.162.16:43112[1](queued=0,recved=54,sent=54)
                 /192.168.162.16:43107[1](queued=0,recved=54,sent=54)
                 /192.168.162.16:43110[1](queued=0,recved=53,sent=53)
                 /192.168.144.98:34702[1](queued=0,recved=41,sent=41)
                 /192.168.144.98:34135[1](queued=0,recved=61,sent=65)
                 /192.168.162.16:43109[1](queued=0,recved=54,sent=54)
                 /192.168.147.102:56038[1](queued=0,recved=165313,sent=165314)
                 /192.168.147.102:56039[1](queued=0,recved=165526,sent=165527)
                 /192.168.147.101:44124[1](queued=0,recved=162811,sent=162812)
                 /192.168.147.102:39271[1](queued=0,recved=41,sent=41)
                 /192.168.144.107:45476[1](queued=0,recved=166422,sent=166423)
                 /192.168.144.103:45100[1](queued=0,recved=54,sent=54)
                 /192.168.162.16:43133[0](queued=0,recved=1,sent=0)
                 /192.168.144.107:39945[1](queued=0,recved=1825,sent=1825)
                 /192.168.144.107:39919[1](queued=0,recved=325,sent=325)
                 /192.168.144.106:47163[1](queued=0,recved=17891,sent=17891)
                 /192.168.144.107:45488[1](queued=0,recved=166554,sent=166555)
                 /172.17.36.11:32728[1](queued=0,recved=54,sent=54)
                 /192.168.162.16:43115[1](queued=0,recved=54,sent=54)
        Latency min/avg/max: 0/0/599
        Received: 224869
        Sent: 224817
        Connections: 23
        Outstanding: 0
        Zxid: 0x68000af707
        Mode: follower
        Node count: 101081
    
    wchs:
        connectsions=连接数
        watch-paths=watch节点数
        watchers=watcher数量
        
    wchc:
        session id 对应 path
        
    wchp:
        path 对应 session id
        
    mntr:
        zk_version=版本
        zk_avg_latency=平均延时
        zk_max_latency=最大延时
        zk_min_latency=最小延时
        zk_packets_received=收包数  
        zk_packets_sent=发包数
        zk_num_alive_connections=连接数
        zk_outstanding_requests=堆积请求数
        zk_server_state=leader/follower 状态
        zk_znode_count=znode数量
        zk_watch_count=watch数量
        zk_ephemerals_count=临时节点(znode)
        zk_approximate_data_size=数据大小
        zk_open_file_descriptor_count=打开的文件描述符数量
        zk_max_file_descriptor_count=最大文件描述符数量
        zk_followers=follower数量
        zk_synced_followers=同步的follower数量
        zk_pending_syncs=准备同步数
  • 相关阅读:
    遇到百张数据表也不怕,Java自动生成实体、Controller、DAO、Service以及Service实现类
    【报错处理】npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/yarn
    阿里云centos Linux系统挂载数据盘操作流程
    Spring Boot获取配置参数最简单常用的两种方式
    最简洁明了的Linux常用命令
    vue+springboot图片上传和显示
    再学Java 之 interface的成员变量
    Java 多线程学习笔记:生产者消费者问题
    Java 多线程学习笔记:wait、notify、notifyAll的阻塞和恢复
    查看MySQL 表结构
  • 原文地址:https://www.cnblogs.com/chunxiaozhang/p/12759595.html
Copyright © 2011-2022 走看看