ZooKeeper 06 - ZooKeeper 的常用命令

瘦風發表於2021-12-12

若要部署 ZooKeeper 單機環境,請檢視此篇:https://www.cnblogs.com/shoufeng/p/10591508.html

若要部署 ZooKeeper 叢集環境,請檢視此篇:https://www.cnblogs.com/shoufeng/p/10591526.html

1 - 服務端常用命令

直接執行 zkServer.sh,會給出如下提示:

ZooKeeper JMX enabled by default
Using config: /data/zookeeper-3.5.8/bin/../conf/zoo.cfg
Usage: ./zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|restart|status|print-cmd}

根據上面的提示,可以知道此指令碼可以通過指定引數來執行不同的功能:

# 啟動服務:
sh zkServer.sh start 

# 檢視服務狀態:
sh zkServer.sh status 

# 停止服務:
sh zkServer.sh stop 

# 重啟服務:
sh zkServer.sh restart  

2 - 客戶端常用命令

使用 zkCli.sh -server ip:2181 連線到 ZooKeeper 服務,控制檯就會輸出 ZooKeeper 的相關環境以及配置資訊。

# 檢視某個目錄下的節點:
ls /zookeeper
# 檢視當前節點資料並能看到更新次數等資料
ls -s /zookeeper

# 建立新的 Znode,並設定資料:[-e] 是臨時節點,[-s] 是順序節點
create /test "test-znode"
# 獲取節點中的資料
get /test
# 修改節點內容
set /test "test-update"

# 刪除節點,如果存在子節點刪除失敗
delete /test

# 遞迴刪除當前節點及其下的所有子節點
deleteall /test

3 - 常用四字命令

可通過 telnet 或 nc 提交四字命令與 ZooKeeper 互動,比如獲取 ZooKeeper 服務的狀態等。

先安裝好 nc:yum -y install nc

# 檢視哪個節點被選擇作 leader 或 follower
echo stat | nc 127.0.0.1 2181
# 測試是否啟動該Server,若回覆 imok 表示已經啟動
echo ruok | nc 127.0.0.1 2181 
# 列出未經處理的會話和臨時節點
echo dump | nc 127.0.0.1 2181

# 輸出服務配置的詳細資訊
echo conf | nc 127.0.0.1 2181
# 列出所有連線到該 Server 的客戶端的連線 / 會話的詳細資訊
echo cons | nc 127.0.0.1 2181

# 輸出關於服務環境的詳細資訊(區別於 conf 命令)
echo envi | nc 127.0.0.1 2181

# 列出未經處理的請求
echo reqs | nc 127.0.0.1 2181

# 列出伺服器 watch 的詳細資訊
echo wchs | nc 127.0.0.1 2181
# 通過 session 列出伺服器 watch 的詳細資訊,結果是一個與 watch 相關的會話列表
echo wchc | nc 127.0.0.1 2181
# 通過路徑列出伺服器 watch 的詳細資訊,結果是一個與 session 相關的路徑
echo wchp | nc 127.0.0.1 2181

# 關掉該 Server
echo kill | nc 127.0.0.1 2181

4 - ZooKeeper 日誌的視覺化

ZooKeeper 的配置檔案中指定的 dataDir 目錄,用來存放快照資料,dataLogDir 用來存放事務日誌檔案。

開啟這兩個目錄下的檔案,會發現它們都是亂碼的,這個時候可以通過如下方法開啟:

# 檢視事務日誌,指定 jar 包、啟動類和日誌檔案的絕對路徑:
java -cp /data/zookeeper-3.5.8/lib/zookeeper-3.5.8.jar:/data/zookeeper-3.5.8/lib/zookeeper-jute-3.5.8.jar:/data/zookeeper-3.5.8/lib/slf4j-api-1.7.25.jar \
org.apache.zookeeper.server.LogFormatter \
/data/zookeeper-3.5.8/data/log/version-2/log.d96

# 檢視快照資料,指定 jar 包、啟動類和資料檔案的絕對路徑:
java -cp /data/zookeeper-3.5.8/lib/zookeeper-3.5.8.jar:/data/zookeeper-3.5.8/lib/zookeeper-jute-3.5.8.jar:/data/zookeeper-3.5.8/lib/slf4j-api-1.7.25.jar \
org.apache.zookeeper.server.SnapshotFormatter \
/data/zookeeper-3.5.8/data/version-2/snapshot.d95

版權宣告

作者:瘦風(https://healchow.com)

出處:部落格園-瘦風的南牆(https://www.cnblogs.com/shoufeng)

感謝閱讀,公眾號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注?

ZooKeeper 06 - ZooKeeper 的常用命令

本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文連結],否則博主保留追究相關人士法律責任的權利。

相關文章