ZooKeeper命令

首先我們先將ZooKeeper的服務啓動

進入ZooKeeper的bin目錄執行以下命令

./zkServer.sh start

啓動成功

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

ZooKeeper 命令

我們通過nc或者telnet命令訪問2181端口,通過執行ruok(Are you OK?) 命令來檢查ZooKeeper是否啓動成功。

echo ruok | nc localhost 2181

結果:

imok

那麼我們看見zookeeper回答我們imok。下面我們將來介紹zookeeper的所有命令,它們都是由4個字符組成的。

命令使用格式
echo 命令 | nc IP地址 端口
  • echo - Shell 的 echo 指令與 PHP 的 echo指令類似,都是用於字符串的輸出。語法爲echo string
  • 命令 - ZooKeeper的命令。例如ruok
  • nc - Linux nc命令用於設置路由器。執行本指令可設置路由器的相關參數。語法爲nc IP地址 端口號
  • IP地址 - 即ZooKeeper所在的服務器IP地址
  • 端口 - 即ZooKeeper的端口號。

有關服務器狀態命令

ruok

如果ZooKeeper正在運行且未處於錯誤狀態,則打印imok。

示例:

echo ruok | nc localhost 2181

結果:

imok

出現imok證明ZooKeeper啓動成功。

conf

打印ZooKeeper的zoo.cfg配置文件信息。

示例:

echo conf | nc localhost 2181

結果:

clientPort=2181
dataDir=/var/lib/zookeeper/version-2
dataLogDir=/var/lib/zookeeper/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=0
  • clientPort - 客戶端連接server的端口,即對外服務端口,一般設置爲2181吧。
  • dataDir - 存儲快照的目錄。
    • 默認情況下,事務日誌也會存儲在這裏。建議同時配置參數dataLogDir, 事務日誌的寫性能直接影響ZooKeeper性能。
    • 默認存放目錄是/tmp 。注意:快照目錄不要使用/tmp進行存儲,因爲/tmp這個目錄是用來存放一些臨時文件的。(/tmp目錄下的內容默認保留10天,這個天數可通過修改CentOS的tmp.conf配置來改變)。所以在安裝完ZooKeeper時最好修改該配置。
  • dataLogDir -事務日誌輸出目錄。儘量給事務日誌的輸出配置單獨的磁盤或是掛載點,這將極大的提升ZooKeeper性能。
  • tickTime - ZooKeeper的一個時間單元(毫秒值)。所有時間都是以這個時間單元爲基礎,進行整數倍配置的。例如,session的最小超時時間是2*tickTime
  • maxClientCnxns - 最大客戶端連接數。默認是60,如果設置爲0,那麼表明不作任何限制。
  • minSessionTimeout - Session最小超時時間限制,如果不設置則爲2 * tickTime
  • maxSessionTimeout - Session最大超時時間限制,如果不設置則爲20 * tickTime
  • serverId - 服務器ID
envi

打印服務器環境,包括ZooKeeper版本,Java版本和其他系統屬性。

示例:

echo envi | nc localhost 2181

結果:

Environment:
zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
host.name=bogon
java.version=1.8.0_181
java.vendor=Oracle Corporation
java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre
java.class.path=/opt/zookeeper-3.4.9/bin/../build/classes:/opt/zookeeper-3.4.9/bin/../build/lib/*.jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/opt/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.9/bin/../conf:
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-957.el7.x86_64
user.name=root
user.home=/root
user.dir=/opt/zookeeper-3.4.9/bin
srvr

打印服務器統計信息,包括延遲統計信息,znode數量和服務器模式(standalone(獨立), leader(領導者), or follower(跟隨者))。

  • standalone - 即ZooKeeper爲單機架構。
  • leader - 即ZooKeeper爲集羣架構,並該服務器爲主服務器。
  • follower - 即ZooKeeper爲集羣架構,並該服務器爲從服務器。

示例:

 echo srvr | nc localhost 2181

結果:

Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Latency min/avg/max: 0/0/0
Received: 6
Sent: 5
Connections: 1
Outstanding: 0
Zxid: 0x5
Mode: standalone
Node count: 4
stat

打印服務器統計信息和連接的客戶端。

示例:

echo stat | nc localhost 2181

結果:

Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /0:0:0:0:0:0:0:1:43486[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 7
Sent: 6
Connections: 1
Outstanding: 0
Zxid: 0x5
Mode: standalone
Node count: 4
srst

重置服務器統計信息。

示例:

echo srst | nc localhost 2181

結果:

Server stats reset.
isro

顯示服務器是處於只讀(ro)模式(由於網絡分區)還是讀/寫模式(rw)。

示例:

echo isro | nc localhost 2181

結果:

rw

有關客戶連接信息命令

dump

列出集合的所有會話和臨時znode。您必須連接到leader(領導者)(請參閱srvr)以獲取此命令。

示例:

echo dump | nc localhost 2181

結果:

SessionTracker dump:
#會話集
Session Sets (4):
0 expire at Sat Aug 24 05:26:06 HKT 2019:
0 expire at Sat Aug 24 05:26:16 HKT 2019:
0 expire at Sat Aug 24 05:26:26 HKT 2019:
1 expire at Sat Aug 24 05:26:36 HKT 2019:
	0x16cc029862a0003
ephemeral nodes dump:
#會話的臨時Znode
Sessions with Ephemerals (0):
cons

列出所有服務器客戶端的連接統計信息。包括接受或者發送包的數量,會話ID,操作延遲,最後的操作執行等等信息。

示例:

echo cons | nc localhost 2181

結果:

 /127.0.0.1:47584[1](queued=0,recved=39,sent=39,sid=0x16cc029862a0003,lop=PING,est=1566595224110,to=30000,lcxid=0x0,lzxid=0xc,lresp=1566595604453,llat=0,minlat=0,avglat=0,maxlat=4)
 /0:0:0:0:0:0:0:1:43856[0](queued=0,recved=1,sent=0)
crst

重置連接統計信息。
示例:

echo crst | nc localhost 2181

結果:

Connection stats reset.

有關Watches的命令

wchs

列出服務器watch的詳細信息。
顯示帶有watch的節點數量。

示例:

echo wchs | nc localhost 2181

結果:

connections watching 1 paths
# 監視器數量爲1
Total watches:1
wchc

通過 session 列出服務器 watch 的詳細信息,輸出session下帶有watch的所有節點。可能會影響大量Watches的服務器性能。

示例:

echo wchc | nc localhost 2181

結果:

0x16cc029862a0004
	/zookeeper

我在/zookeeper節點中設置一個watch(監視器),所以顯示/zookeeper節點

wchp

通過帶有watch的節點路徑列出服務器的詳細信息。輸出帶有watch的所有節點下的session信息。可能會影響大量Watches的服務器性能。
示例:

echo wchp | nc localhost 2181

結果:

/zookeeper
	0x16cc029862a0004

有關Monitoring的命令

mntr

列出Java屬性格式的服務器統計信息,適合作爲監控系統(如Ganglia和Nagios)的源。
示例:

echo mntr | nc localhost 2181

結果:

zk_version	3.4.9-1757313, built on 08/23/2016 06:50 GMT
zk_avg_latency	0 
zk_max_latency	10
zk_min_latency	0
zk_packets_received	1629
zk_packets_sent	1630
zk_num_alive_connections	2
zk_outstanding_requests	0
zk_server_state	standalone
zk_znode_count	4
zk_watch_count	1
zk_ephemerals_count	0
zk_approximate_data_size	29
zk_open_file_descriptor_count	29
zk_max_file_descriptor_count	4096

3.5.0以上的版本會有一個內嵌的web服務,通過訪問http://localhost:8080/commands來訪問以上的命令列表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章