Zookeeper工具集詳解

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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章