概述
ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,它包含一個簡單的原語集,分布式應用程序可以基於它實現同步服務,配置維護和命名服務等,是很多分布式的基礎設置,比如dubbo,kafka,hbase等。zookeeper 可以單機部署,單獨使用,一般需要做集群部署。你運行一個zookeeper也是可以的,但是在生產環境中,你最好部署3,5,7個節點。部署的越多,可靠性就越高,當然只能部署奇數個,偶數個是不可以的。
部署
由於是實驗性質,我們部署的時候在一台機器上部署多個實例。
1.首先需要下載zookeeper.
2.解壓
tar -zxvf zookeeper-3.4.13.tar.gz
3.進入到 conf目錄
創建3份配置文件
zk1.cfg zk2.cfg zk3.cfg
3.在根目錄下創建 data 目錄
mkdir data
cd data
mkdir zk1
mkdir zk2
mkdir zk3
在data 創建3個目錄
4.在根目錄下創建log目錄
創建3個目錄
mkdir log
cd log
mkdir zk1
mkdir zk2
mkdir zk3
5.分別編輯 zk1.cfg zk2.cfg zk3.cfg
zk1.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk1
clientPort=2181
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk1
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
zk2.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk2
clientPort=2182
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk2
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
zk3.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk3
clientPort=2183
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk3
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
6.在data目錄創建myid文件
區分到底是第幾個實例,就要有個id文件,且名字必須是myid
執行命令
echo "1" > /home/zookpeer/zookeeper-3.4.13/data/zk1/myid
echo "2" > /home/zookpeer/zookeeper-3.4.13/data/zk2/myid
echo "3" > /home/zookpeer/zookeeper-3.4.13/data/zk3/myid
7.分別啟動zookeeper
./bin/zkServer.sh start conf/zk1.cfg
./bin/zkServer.sh start conf/zk2.cfg
./bin/zkServer.sh start conf/zk3.cfg
8.查看zookpeer 狀態
可以看到zk2 是實例,zk1,zk3 是從實例
這樣就安裝好了zookeeper 的集群,如果是多機器部署
可以改成:
dataDir=/home/zookpeer/zookeeper-3.4.13/data/
clientPort=2181
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/
server.1=localhost:2890:3890
server.2=localhost:2890:3890
server.3=localhost:2890:3890
部署更簡單。