zookeeper之 zkServer.sh命令、zkCli.sh命令、四字命令

張衝andy發表於2017-10-15

一、zkServer.sh

1、檢視 zkServer.sh 幫助資訊
[root@bigdata05 bin]# ./zkServer.sh help
ZooKeeper JMX enabled by default
Using config: /bigdata/zookeeper-3.4.10/bin/../conf/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

2、 啟動/關閉 zk伺服器
[root@bigdata05 bin]# ./zkServer.sh start
[root@bigdata05 bin]# ./zkServer.sh stop

3、檢視伺服器狀態
[root@bigdata05 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /bigdata/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower


二、zkCli.sh

1、檢視 zkCli.sh 幫助資訊
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history 
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit 
getAcl path
close 
connect host:port


常用命令

0)連線zookeeper
[root@bigdata05 bin]# ./zkCli.sh -server localhost:2181

1)檢視當前節點列表
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, yarn-leader-election, hadoop-ha]

2)建立節點
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, yarn-leader-election, hadoop-ha]
[zk: localhost:2181(CONNECTED) 2] create /test "test"
Created /test
[zk: localhost:2181(CONNECTED) 3] ls /
[zookeeper, test, yarn-leader-election, hadoop-ha]
[zk: localhost:2181(CONNECTED) 4] create /test/test "test"
Created /test/test
[zk: localhost:2181(CONNECTED) 5] ls /
[zookeeper, test, yarn-leader-election, hadoop-ha]
[zk: localhost:2181(CONNECTED) 6] ls /test
[test]

3)檢視節點資料
[zk: localhost:2181(CONNECTED) 7] get /test
test
cZxid = 0x400000031
ctime = Mon Oct 16 04:05:02 CST 2017
mZxid = 0x400000031
mtime = Mon Oct 16 04:05:02 CST 2017
pZxid = 0x400000032
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1

4)設定節點資料
[zk: localhost:2181(CONNECTED) 8] set /test "666666"
cZxid = 0x400000031
ctime = Mon Oct 16 04:05:02 CST 2017
mZxid = 0x400000033
mtime = Mon Oct 16 04:08:44 CST 2017
pZxid = 0x400000032
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 1
[zk: localhost:2181(CONNECTED) 10] get /test
666666
cZxid = 0x400000031
ctime = Mon Oct 16 04:05:02 CST 2017
mZxid = 0x400000033
mtime = Mon Oct 16 04:08:44 CST 2017
pZxid = 0x400000032
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 1

5)刪除節點
[zk: localhost:2181(CONNECTED) 11] delete /test
Node not empty: /test
[zk: localhost:2181(CONNECTED) 12] ls /
[zookeeper, test, yarn-leader-election, hadoop-ha]
[zk: localhost:2181(CONNECTED) 13] delete /test/test
[zk: localhost:2181(CONNECTED) 14] ls /test
[]
[zk: localhost:2181(CONNECTED) 15] delete /test
[zk: localhost:2181(CONNECTED) 16] ls /
[zookeeper, yarn-leader-election, hadoop-ha]

 

三、 ZooKeeper伺服器端四字命令

ZooKeeper 支援某些特定的四字命令(The Four Letter Words)與其進行互動。它們大多是查詢命令,用來獲取 ZooKeeper 服務的當前狀態及相關資訊。使用者在客戶端可以透過 telnet 或 nc 向 ZooKeeper 提交相應的命令。 ZooKeeper 常用四字命令主要如下:

ZooKeeper四字命令
功能描述
conf 3.3.0版本引入的。列印出服務相關配置的詳細資訊。
cons 3.3.0版本引入的。列出所有連線到這臺伺服器的客戶端全部連線/會話詳細資訊。包括"接受/傳送"的包數量、會話id、操作延遲、最後的操作執行等等資訊。
crst 3.3.0版本引入的。重置所有連線的連線和會話統計資訊。
dump 列出那些比較重要的會話和臨時節點。這個命令只能在leader節點上有用。
envi 列印出服務環境的詳細資訊。
reqs 列出未經處理的請求
ruok 測試服務是否處於正確狀態。如果確實如此,那麼服務返回"imok",否則不做任何相應。
stat 輸出關於效能和連線的客戶端的列表。
srst 重置伺服器的統計。
srvr 3.3.0版本引入的。列出連線伺服器的詳細資訊
wchs 3.3.0版本引入的。列出伺服器watch的詳細資訊。
wchc 3.3.0版本引入的。透過session列出伺服器watch的詳細資訊,它的輸出是一個與watch相關的會話的列表。
wchp 3.3.0版本引入的。透過路徑列出伺服器watch的詳細資訊。它輸出一個與session相關的路徑。
mntr 3.4.0版本引入的。輸出可用於檢測叢集健康狀態的變數列表

##conf conf 命令是在 3.3.0 版本中引入的, 它會列印輸出伺服器配置的詳細資訊。以便運維人員能夠很快速的檢視 ZooKeeper 伺服器當前執行時的一些配置引數。

telnet示例

conf_telnet

可以看到有些配置項我們沒有在 zoo.cfg 配置檔案中配置, 伺服器使用了預設配置。

nc示例

conf_nc

執行模式

conf 命令會根據當前的執行模式來決定列印輸出的伺服器配置資訊, 上面的兩個示例是叢集模式下的示例, 如果是單機模式(standalone), 則不會輸出 initLimit、syncLimit、electionAlg 以及 electionPort 等叢集配置資訊。

standalone


##cons cons 命令是 3.3.0 版本中引入的, 它用於輸出所有連線到該伺服器的客戶端的完整連線和會話資訊, 包括接收和傳送包的數量、會話ID、操作延遲以及最後執行的操作等資訊。

cons

可以看到本機上有一個客戶端連線。


##crst crst 命令是在 3.3.0 版本中引入的, 用於重置所有客戶端連線的連線和會話統計資訊。

crst


##dump dump 命令用於輸出未完成的會話和臨時節點。 ###leader示例 dump_leader ###follower示例 dump_follower


##envi envi 命令用於列印輸出伺服器執行時的環境變數資訊。

envi


##ruok ruok 命令用於測試當前伺服器是否正在執行。如果伺服器正在執行則返回 "imok", 否則沒有任何響應。

ruok

需要注意的是, "imok" 響應不一定能夠表明伺服器已經加入到叢集中, 僅僅說明伺服器程式處於活動狀態並且已經繫結到指定的客戶端埠。 可以使用 "stat" 獲取叢集狀態以及客戶端連線資訊。


##srst srst 命令用於重置伺服器統計資訊。

srst


##srvr srvr 命令是在 3.3.0 版本中引入的, 它用於輸出伺服器的完整資訊。

srvr


##stat stat 命令用於輸出伺服器以及連線到該伺服器的客戶端的概要資訊。

stat

srvr 命令和 stat 命令的唯一區別是 srvr 不會輸出客戶端的概要資訊。


##wchs wchs 命令是在 3.3.0 版本中引入的, 用於輸出當前伺服器上 Watcher 的概要資訊。

wchs


##wchc wchc 命令是在 3.3.0 版本中引入的, 用於按會話輸出當前伺服器上 watches 的詳細資訊。它會輸出會話(連線)以及相關的 watches (路徑) 列表。

wchc

因為暫時沒有 watches, 所以沒有任何輸出。

注意, 取決於 watches 的數量, 這個操作可能會非常耗時 (影響伺服器效能), 所以需要謹慎使用。


##wchp wchp 命令是在 3.3.0 版本中引入的, 用於按路徑輸出當前伺服器上 watches 的詳細資訊。它會輸出路徑 (znodes) 以及相關會話列表。

wchp

同樣的, 因為暫時沒有 watches, 所以沒有任何輸出。

注意, 取決於 watches 的數量, 這個操作可能會非常耗時 (影響伺服器效能), 所以需要謹慎使用。


##mntr mntr 命令是在 3.4.0 版本中引入的, 用於輸出可用於監控叢集健康的變數列表。 ###leader示例 mntr_leader ###follower示例 mntr_follower 

###示例說明 從上面兩個示例可以看到, zk_followers, zk_synced_followers 和 zk_pending_syncs 只有在 leader 伺服器上執行 mntr 命令時才會輸出。還需要注意的是, zk_open_file_descriptor_count 和 zk_max_file_descriptor_count 這兩個變數只有在 Unix 平臺上才可用。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2146002/,如需轉載,請註明出處,否則將追究法律責任。

相關文章