ZooKeeper之(四)配置与命令
4.1 配置文件
ZooKeeper安裝好之后,在安裝目錄的conf文件夾下可以找到一個名為“zoo_sample.cfg”的文件,是ZooKeeper配置文件的模板。
ZooKeeper啟動時,會默認加載“conf/zoo.cfg”作為配置文件,所以需要將“zoo_sample.cfg”復制一份,命名為“zoo.cfg”,然后根據需要設定里面的配置項。
配置項很簡單,說明如下:
tickTime=2000
這個時間是作為 ZooKeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。單位為毫秒。
initLimit=10
這個配置項是用來配置 Leader接受Follower 初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度后 Leader還沒有收到Follower的返回信息,那么表明這個Follower連接失敗。總的時間長度就是 5*2000=10 秒。
syncLimit=5
這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個tickTime 的時間長度,總的時間長度就是5*2000=10 秒。
dataDir=/tmp/zookeeper
顧名思義就是 ZooKeeper保存數據的目錄,用于存放內存數據庫快照的文件夾,同時用于集群的myid文件也存在這個文件夾里。默認情況下,ZooKeeper 將寫數據的日志文件也保存在這個目錄里。注意:一個配置文件只能包含一個dataDir字樣,即使它被注釋掉了。
clientPort=2181
這個端口就是客戶端連接 ZooKeeper服務器的端口,ZooKeeper 會監聽這個端口,接受客戶端的訪問請求。
maxClientCnxns=60
最大的客戶端連接數,默認為60.
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
客戶端在與ZooKeeper交互過程中會產生非常多的日志,而且ZooKeeper也會將內存中的數據作為snapshot保存下來,這些數據是不會被自動刪除的,這樣磁盤中這樣的數據就會越來越多。不過可以通過這兩個參數來設置,讓zookeeper自動刪除數據。autopurge.purgeInterval就是設置多少小時清理一次。而autopurge.snapRetainCount是設置保留多少個snapshot,之前的則刪除。
4.2 服務端命令
“zkServer.sh”腳本用于執行Zookeeper的啟動、停止及狀態查看等操作
利用“zkServer.sh help”命令,可以查看支持的參數:
可見,“zkServer.sh”可以附帶的參數有:
(1)start:用于啟動服務端
(2)stop:用于停止服務端
(3)restart:用于重啟服務端
(4)status:用于查看服務端狀態
以及用于前臺啟動、更新等操作的其他參數。
例如,使用命令“zkServer.sh start”啟動ZooKeeper服務端,該命令后面可以附帶參數,用于指定配置文件的路徑,比如“zkServer.sh start ../conf/ZooKeeper.cfg”,代表使用ZooKeeper.cfg作為配置文件,如果不指定路徑,默認加載“conf/zoo.cfg”文件:
使用“zkServer.sh stop”停止服務端:
4.3 客戶端命令
使用命令“zkCli.sh -server 127.0.0.1:2181”可以連接到IP為“127.0.0.1”,端口為“2181”的ZooKeeper服務器。如果連接本機的2181端口,則后面的參數可以省略。如:
此時,輸入“help”可以查看命令參數:
4.3.1 查看節點列表
在前面已經提到過,ZooKeeper維護者一個樹形的數據結構,根節點為“/”。
“ls path”用于查看路徑path下的所有直接子節點:
可見,系統初始化的時候,根節點下會自動創建一個名為“zookeeper”的節點,用于存儲ZooKeeper的管理信息。所以用戶不能再根節點下創建同名的子節點。
4.3.2 創建新節點
“create path data”用于在path路徑下創建一個新節點,攜帶數據data。
例如,在根節點下新建一個名為“firstNode”節點,存儲的數據為“HelloWorld”:
4.3.3 查看節點數據
“get path”用于獲取path節點下的數據,例如:
除了返回節點存儲的數據之外,還有一系列的元信息,如代表節點創建時間的“cZxid”、“ctime”(兩種表示方法);節點的修改時間“mZxid”、“mtime”等。
4.3.4 修改節點數據
“set path data ”用于將path節點下的數據更改為data。
如,將“/firstNode”下的數據更改為“WorldHello”:
4.3.5 刪除節點
“delete path”用于刪除path節點。
如,刪除“/firstNode”節點:
?
此外,還有用于設置節點ACL、查看節點狀態等其他命令,需要時可以查閱相關手冊。
4.4 ZooKeeper四字命令
ZooKeeper 支持某些特定的四字命令字母與其的交互。它們大多是查詢命令,用來獲取 ZooKeeper 服務的當前狀態及相關信息。用戶在客戶端可以通過 telnet 或 nc 向 ZooKeeper 提交相應的命令。
ZooKeeper四字命令 | 功能描述 |
conf | 輸出相關服務配置的詳細信息 |
cons | 列出所有連接到服務器的客戶端的完全的連接 / 會話的詳細信息。包括“接受 / 發送”的包數量、會話 id 、操作延遲、最后的操作執行等等信息 |
dump | 列出未經處理的會話和臨時節點 |
envi | 輸出關于服務環境的詳細信息(區別于 conf 命令) |
reqs | 列出未經處理的請求 |
ruok | 測試服務是否處于正確狀態。如果確實如此,那么服務返回“ imok ”,否則不做任何相應 |
stat | 輸出關于性能和連接的客戶端的列表 |
wchs | 列出服務器 watch 的詳細信息 |
wchc | 通過 session 列出服務器 watch 的詳細信息,它的輸出是一個與 watch 相關的會話的列表 |
wchp | 通過路徑列出服務器 watch 的詳細信息。它輸出一個與 session 相關的路徑 |
例如,查看配置信息:
“echo conf | nc 127.0.0.1 2181”:
nc為“NetCat”工具提供的命令,通常的Linux發行版中都帶有NetCat。NetCat在網絡工具中有“瑞士軍刀”美譽,被設計為一個簡單、可靠的網絡工具,可通過TCP或UDP協議傳輸讀寫數據。
該命令的意思為,將“conf”命令傳遞給127.0.0.1的2181端口(即本機的ZooKeeper服務端口),并將響應打印出來:
轉載于:https://www.cnblogs.com/duadu/p/6335750.html
總結
以上是生活随笔為你收集整理的ZooKeeper之(四)配置与命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用问题记录
- 下一篇: (转)USB体系结构