1. 下載zookeeper
https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
2. 解壓
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
此時會解壓出文件夾apache-zookeeper-3.6.3-bin
,重命名一下
mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3
放到opt
目錄下
mv zookeeper-3.6.3/ /opt
3. 配置zookeeper數據目錄、日誌目錄
mkdir -p /data/zookeeper/zk1/data
mkdir -p /data/zookeeper/zk1/log
mkdir -p /data/zookeeper/zk2/data
mkdir -p /data/zookeeper/zk2/log
mkdir -p /data/zookeeper/zk3/data
mkdir -p /data/zookeeper/zk3/log
4. 配置文件
cd /opt/zookeeper-3.6.3/conf
conf
目錄下有個zoo_sample.cfg
,這個是模板配置文件,以此爲模板複製一個配置文件
cp zoo_sample.cfg zoo1.cfg
修改zoo1.cfg
內容
dataDir=/data/zookeeper/zk1/data
dataLogDir=/data/zookeeper/zk1/log
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
最後配置的解釋
server.A=B:C:D
A:其中 A 是一個數字,表示這個是服務器的編號
B:是這個服務器的 ip 地址
C:Zookeeper服務器之間的通信端口
D:Leader選舉的端口
以zoo1.cfg
,複製zoo2.cfg
cp zoo1.cfg zoo2.cfg
修改zoo2.cfg
,注意子目錄爲 zk2
,端口爲2182
,最後的server
塊不需要改動
dataDir=/data/zookeeper/zk2/data
dataLogDir=/data/zookeeper/zk2/log
clientPort=2182
同理複製zoo3.cfg
並修改,注意子目錄爲 zk3
,端口爲2183
,最後的server
塊不需要改動
dataDir=/data/zookeeper/zk3/data
dataLogDir=/data/zookeeper/zk3/log
clientPort=2183
5. 配置 myid
必須要在zookeeper
的dataDir
目錄下存在myid
文件,內容爲服務器編號,zookeeper啓動時會讀取該文件,通過文件內容判斷爲哪個server
echo 1 > /data/zookeeper/zk1/data/myid
echo 2 > /data/zookeeper/zk2/data/myid
echo 3 > /data/zookeeper/zk3/data/myid
6. 啓動zookeeper集羣
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo1.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo2.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh start /opt/zookeeper-3.6.3/conf/zoo3.cfg
7. 查看集羣各個節點狀態
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo1.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo2.cfg
/opt/zookeeper-3.6.3/bin/zkServer.sh status /opt/zookeeper-3.6.3/conf/zoo3.cfg
Mode
爲Leader
爲主節點,follwer
爲從節點