ZooKeeper常用命令行工具及使用(轉)


一、服務端

bin目錄下常用的腳本解釋

  • zkCleanup:清理Zookeeper歷史數據,包括食物日志文件和快照數據文件
  • zkCli:Zookeeper的一個簡易客戶端
  • zkEnv:設置Zookeeper的環境變量
  • zkServer:Zookeeper服務器的啟動、停止、和重啟腳本

1、運行服務

進入bin目錄,使用

zkServer.sh start

啟動服務

使用jps命令查看,存在QuorumPeerMain進程,表示Zookeeper已經啟動

 

2、停止服務

在bin目錄下,使用

zkServer.sh stop

停止服務

使用jps命令查看,QuorumPeerMain進程已不存在,表示Zookeeper已經關閉

3、查看服務狀態

zkServer.sh status

4、重啟服務

zkServer.sh restart

二、客戶端

1、打開客戶端

在服務端開啟的情況下,運行客戶端,使用如下命令連接本機:

./zkCli.sh

連接服務端成功。

若連接不同的主機,可使用如下命令:

./zkCli.sh -server ip:port

可以使用幫助命令help來查看客戶端的操作

2、創建節點

使用create命令,可以創建一個Zookeeper節點, 如

create [-s] [-e] path data acl

其中,-s或-e分別指定節點特性,順序或臨時節點,若不指定,則表示持久節點;acl用來進行權限控制。

①、創建順序節點

使用

create -s /zk-test 123

命令創建zk-test順序節點

可以看到創建的zk-test節點后面添加了一串數字以示區別。

②、創建臨時節點

使用

create -e /zk-temp 123

命令創建zk-temp臨時節點

臨時節點在客戶端會話結束后,就會自動刪除,下面使用

quit

命令退出客戶端

再次使用客戶端連接服務端,並使用

ls / 

命令查看根目錄下的節點

可以看到根目錄下已經不存在zk-temp臨時節點了。

③、創建永久節點

使用

create /zk-permanent 123

命令創建zk-permanent永久節點

可以看到永久節點不同於順序節點,不會自動在后面添加一串數字。

3、讀取節點

與讀取相關的命令有ls 命令和get 命令,ls命令可以列出Zookeeper指定節點下的所有子節點,只能查看指定節點下的第一級的所有子節點;get命令可以獲取Zookeeper指定節點的數據內容和屬性信息。其用法分別如下

ls path [watch]
get path [watch]
ls2 path [watch]

若獲取根節點下面的所有子節點,使用

ls / 

命令即可

若想獲取根節點數據內容和屬性信息,使用

get / 

命令即可

也可以使用

ls2 / 

命令查看

可以看到其子節點數量為8。

若想獲取/zk-permanent的數據內容和屬性,可使用如下命令:

get /zk-permanent 

可以看到其數據內容為123,還有其他的屬性,之后會詳細介紹。

4、更新節點

使用set命令,可以更新指定節點的數據內容,用法如下

set path data [version] 

其中,data就是要更新的新內容,version表示數據版本,如將/zk-permanent節點的數據更新為456,可以使用如下命令:

set /zk-permanent 456

現在dataVersion已經變為1了,表示進行了更新。

5、刪除節點

使用delete命令可以刪除Zookeeper上的指定節點,用法如下

delete path [version] 

其中version也是表示數據版本,使用

delete /zk-permanent 

命令即可刪除/zk-permanent節點

可以看到,已經成功刪除/zk-permanent節點。值得注意的是,若刪除節點存在子節點,那么無法刪除該節點,必須先刪除子節點,再刪除父節點。

三、使用技巧

1、查看結點被選作leader或者follower 

zkServer.sh status

或者使用

echo stat|nc 127.0.0.1 2181 

2、ZooKeeper常用四字命令:

傳遞四個字母的字符串給ZooKeeper,會返回一些有用的信息。

命令

功能描述

conf

輸出相關服務配置的詳細信息。

cons

列出所有連接到服務器的客戶端的完全的連接 /會話的詳細信息。包括“接受/發送”的包數量、會話id 、操作延遲、最后的操作執行等等信息。

dump

列出未經處理的會話和臨時節點。

envi

輸出關於服務環境的詳細信息(區別於conf命令)。

reqs

列出未經處理的請求

ruok

測試服務是否處於正確狀態。如果確實如此,那么服務返回“imok ”,否則不做任何相應。

stat

輸出關於性能和連接的客戶端的列表。

wchs

列出服務器 watch的詳細信息。

wchc

通過Session列出服務器watch的詳細信息,它的輸出是一個與watch相關的會話的列表。

wchp

通過路徑列出服務器watch的詳細信息。它輸出一個與Session相關的路徑。

ZooKeeper支持某些特定的四字命令字母與其的交互。它們大多是查詢命令,用來獲取ZooKeeper服務的當前狀態及相關信息。用戶在客戶端可以通過telnet或nc向ZooKeeper提交相應的命令

①、查看哪個節點被選擇作為follower或者leader

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

④、關掉server

echo kill | nc 127.0.0.1 2181

⑤、輸出相關服務配置的詳細信息

echo conf | nc 127.0.0.1 2181

⑥、列出所有連接到服務器的客戶端的完全的連接/會話的詳細信息

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 

 

參考:

http://www.cnblogs.com/likehua/p/3999588.html

http://blog.csdn.net/ganglia/article/details/11606807

http://www.cnblogs.com/leesf456/p/6022357.html(以上內容大部分轉自此篇文章)

http://blog.csdn.net/linux_bug/article/details/48728853(以上小部分內容轉自此篇文章)

http://blog.csdn.net/xiaolang85/article/details/13021339

https://wenku.baidu.com/view/fb5aae4c69dc5022abea0099.html

http://www.cnblogs.com/sunddenly/p/4031881.html

http://www.linuxidc.com/Linux/2017-01/140051.htm

http://www.cnblogs.com/dreammyle/p/5760077.html(以上小部分內容轉自此篇文章)


免責聲明!

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



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