zookeeper 搭建單機僞集羣
準備工作
- 1、本文是在ubuntu 16.04上搭建的
- 2、安裝jdk1.8,過程可以百度或者谷歌
- 3、下載zookeeper
開始
- 1、因爲機器有限,只能在一臺機器上搭建,將下載的zookeeper-3.4.11.tar.gz解壓,文件夾複製兩份,文件夾名分別改爲server1、server2、server3,分別在這三個文件夾裏新建data和dataLog這兩個文件;
- 2、打開server1裏的conf,將zoo_sample.cfg重命名爲在zoo.cfg;
- 3、在zoo.cfg裏添加如下配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/code/zookeeper/server1/data
dataLogDir=/home/code/zookeeper/server1/dataLog
clientPort=2181
server.1 =127.0.0.1:2888:3888
server.2 =127.0.0.1:2889:3889
server.3 = 127.0.0.1:2890:3890
initLimit
ZooKeeper集羣模式下包含多個zk進程,其中一個進程爲leader,餘下的進程爲follower。
當follower最初與leader建立連接時,它們之間會傳輸相當多的數據,尤其是follower的數據落後leader很多。initLimit配置follower與leader之間建立連接後進行同步的最長時間。
syncLimit
配置follower和leader之間發送消息,請求和應答的最大時間長度。
tickTime
tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值爲5,說明其超時時間爲 2000ms * 5 = 10秒。
.server.id=host:port1:port2
其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。
host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。
- 4、dataDir和dataLogDir路徑不要寫錯,不然啓動會報錯:java.net.ConnectException: 拒絕連接
- 5、將該配置分別複製到server2和server3,這裏只要將clientPort改成2182和2183,端口不能衝突
- 6、至此,基本就搭建完成了
測試
./zkServer.sh start
- 2、都啓動之後,在bin再輸入,連接到zookeeper
./zkCli.sh -server 127.0.0.1:2182
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0]
參考:http://blog.csdn.net/zh521zh/article/details/51732083