1、zkServer.sh
用於操作Zookeeper服務端命令行
命令用法: ./zkServer.sh {start|start-foreground|stop|version|restart|status|upgrade|print-cmd}
啓動Zookeeper服務端
./zkServer.sh start
通過前臺方式啓動Zookeeper服務端,用於調試
./zkServer.sh start-foreground
停止Zookeeper服務端
./zkServer.sh stop
重啓Zookeeper服務端
./zkServer.sh restart
展示服務端當前狀態、模式、角色(Leader、Follower、Observer)
./zkServer.sh status
升級服務端(已棄用)
./zkServer.sh upgrade
打印Zookeeper服務端啓動時的命令
./zkServer.sh print-cmd
展示Zookeeper服務端的版本
./zkServer.sh version
2、zkCli.sh
用於客戶端連接Zookeeper服務端,並執行其他操作
命令用法具體見另外一篇文章
3、zkEnv.sh
用於設置Zookeeper服務端的環境配置
4、zkCleanup.sh
用於清理Zookeeper服務端舊的快照和事務日誌。
命令用法:./zkCleanup.sh dataLogDir [snapDir] -n count
dataLogDir -- Zookeeper事務日誌存放的絕對路徑
snapDir -- Zookeeper數據快照存放的絕對路徑
count -- 想保留的舊快照或者事務日誌的數量,這個值必須大於等於3
保留最新的5個快照和事務日誌
./zkCleanup.sh -n 5
5、zkTxnLogToolkit.sh
TxnLogToolkit是ZooKeeper自帶的命令行工具,用於恢復CRC中斷的事務日誌條目。
命令用法:./zkTxnLogToolkit.sh [-dhrvc] <txn_log_file_name> (-z <zxid>)
默認事務日誌存儲在數據目錄下,如果指定了具體的事務日誌存儲路徑,那就到具體目錄下查看事務日誌
以log.開頭的就是事務日誌,每次重啓Zookeeper服務都會重新生成一個日誌
txn_log_file_name事務日誌文件名稱
-c,--chop 用於切割某個事務ID的日誌
-d,--dump 轉儲方式。轉儲日誌文件的所有條目,並打印nodepath的內容(默認)
-h,--help 打印命令幫助信息
-r,--recover 恢復模式,重新計算所有所有損壞的CRC條目
-v,--verbose 在恢復模式下打印所有條目,而不僅僅是匹配的條目。
-y,--yes 不需要交互就直接恢復所有的CRC錯誤 ,否則需要恢復
-z,--zxid <arg> 指定某個事務id
打印事務日誌,等同於-d參數
# zkTxnLogToolkit.sh log.300000001
恢復CRC錯誤
# bin/zkTxnLogToolkit.sh -r log.100000001
ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
CRC ERROR - 4/5/18 2:16:05 PM CEST session 0x16295bafcc40000 cxid 0x1 zxid 0x100000002 closeSession null
Would you like to fix it (Yes/No/Abort) ?
輸入y來進行交互,然後開始恢復
也可以通過添加-y參數,這樣就不需要交互了
6、zkSnapShotToolkit.sh
將快照文件轉儲到標準輸出,顯示每個zk-node的詳細信息。
命令用法:
# zkSnapShotToolkit.sh snapshot.0