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=准備同步數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM