最終目的:kafka的集群虹统。
kafka依賴zookeeper首量,因此而配置zookeeper的集群暂雹。
服務(wù)器
192.168.220.123 zkNodeA
192.168.220.127 zkNodeB
192.168.220.206 zkNodeC
為了后期移動(dòng)方便渣磷,依舊使用docker
搭建服務(wù)器準(zhǔn)備:已有docker向楼,可聯(lián)網(wǎng)
為減少制作鏡像時(shí)下載文件慢田炭,提前做了下載
- 制作基礎(chǔ)鏡像
FROM centos
MAINTAINER lixr
ADD ./tools /opt/
VOLUME [ "/opt/product/data/" ]
CMD /usr/sbin/init
docker build -t zookeeper:0224 ./
tools 文件下有jdk1.8.0_101 和 zookeeper-3.4.9
- 啟動(dòng)基礎(chǔ)鏡像
docker run -d -p 2888:2888 -p 3888:3888 -p 2181:2181 --privileged=true -v /opt/product/data/zookeeper/:/opt/product/data --name zkNode zookeeper:0224
- 修改配置
進(jìn)入容器
docker exec -ti zkNode /bin/bash
在/opt/zookeeper-3.4.9/conf
目錄下配置 zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/product/data/
dataLogDir=/opt/product/data/zkdatalog
clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=192.168.220.127:2888:3888
server.3=192.168.220.206:2888:3888
當(dāng)前服務(wù)器上 ip 換成 0.0.0.0
依次在節(jié)點(diǎn)上執(zhí)行
echo "1" > /opt/product/data/myid
echo "2" > /opt/product/data/myid
echo "3" > /opt/product/data/myid
- 啟動(dòng)服務(wù)
export JAVA_HOME= /opt/jdk1.8.0_101/
/opt/zookeeper-3.4.9/bin/zkServer.sh start
其他兩臺(tái)操作相同
- 測(cè)試集群
4.1 檢查zookeeper狀態(tài)
zkNodeA:
./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
zkNodeB:
./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader
zkNodeC:
./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
有一臺(tái)服務(wù)器為 leader
4.2 創(chuàng)建數(shù)據(jù)
在任意一臺(tái)上
./zkCli.sh -server 192.168.220.127:2181
[zk: 192.168.220.127:2181(CONNECTED) 1] create /projecttest testbylixr
Created /projecttest
在其他兩臺(tái)上查看4.3 切換leader
對(duì)leader節(jié)點(diǎn) 關(guān)閉
/opt/zookeeper-3.4.9/bin/zkServer.sh stop
再次檢查節(jié)點(diǎn)狀態(tài)师抄,之前l(fā)eader 已不存在,而另外兩臺(tái)中
有一臺(tái)由 follower 變成 leader
到此教硫,zookeeper的集群配置已完成叨吮,后期將手動(dòng)改成腳本辆布,做到簡(jiǎn)單化。