1、Mac安裝ZooKeeper
zookeeper支持brew安裝,檢查安裝環境
brew info zookeeper
brew install zookeeper
安裝後zookeeper配置文件位置:
/usr/local/etc/zookeeper
2 、配置文件zookeeper詳解
tickTime
:ZK中的一個時間單元。ZK中所有時間都是以這個時間單元爲基礎,進行整數倍配置的。例如,session
的最小超時時間是2*tickTime
。initLimit
:Follower
在啓動過程中,會從Leader同步所有最新數據,然後確定自己能夠對外服務的起始狀態。Leader
允許F
在initLimit
時間內完成這個工作。通常情況下,我們不用太在意這個參數的設置。如果ZK集羣的數據量確實很大了,F在啓動的時候,從Leader
上同步數據的時間也會相應變長,因此在這種情況下,有必要適當調大這個參數了。(No Java system property)syncLimit
:在運行過程中,Leader
負責與ZK集羣中所有機器進行通信,例如通過一些心跳檢測機制,來檢測機器的存活狀態。如果L發出心跳包在syncLimit
之後,還沒有從F那裏收到響應,那麼就認爲這個F已經不在線了。注意:不要把這個參數設置得過大,否則可能會掩蓋一些問題。(No Java system property)dataDir
:存儲快照文件snapshot
的目錄。默認情況下,事務日誌也會存儲在這裏。建議同時配置參數dataLogDir
, 事務日誌的寫性能直接影響zk性能。
-clientPort
: 客戶端連接server
的端口,即對外服務端口,一般設置爲2181
吧。
server.x
=[hostname]:nnnnn[:nnnnn]:這裏的x是一個數字,與myid
文件中的id是一致的。右邊可以配置兩個端口,第一個端口用於F和L之間的數據同步和其它通信,第二個端口用於Leader
選舉過程中投票通信。
4、配置zookeeper
- 單機環境的配置配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/var/run/zookeeper/data/zk1
clientPort=2182
server.1=127.0.0.1:2888:3888
添加myid文件
cd /usr/local/var/run/zookeeper/data/zk1(配置文件中的dataDir)
vim myid 輸入 1 保存,1代表機器編號。
啓動服務
關閉服務
zkServer stop
5、運行結果如下:
啓動服務
執行命令zkServer
$zkServer
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
$ zkServer status
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Error contacting service. It is probably not running.
$ zkServer start
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
查看zookeeper運行及狀態
安裝後,可以看到zookeeper提供了zkCli等工具進行.
$zkCli
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled
[zk: localhost:2181(CONNECTING) 0]
[zk: localhost:2181(CONNECTING) 0]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper
[quota]
[zk: localhost:2181(CONNECTED) 3] ls /zookeeper/quota
[]
[zk: localhost:2181(CONNECTED) 4]