一、服務端
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(以上小部分內容轉自此篇文章)