zookeeper 集群搭建

最终目的:kafka的集群。
kafka依赖zookeeper,因此而配置zookeeper的集群。

服务器
192.168.220.123 zkNodeA
192.168.220.127 zkNodeB
192.168.220.206 zkNodeC

为了后期移动方便,依旧使用docker

搭建服务器准备:已有docker,可联网
为减少制作镜像时下载文件慢,提前做了下载

  1. 制作基础镜像
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

  1. 启动基础镜像
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 
  1. 修改配置
    进入容器
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

当前服务器上 ip 换成 0.0.0.0
依次在节点上执行

echo "1" > /opt/product/data/myid
echo "2" > /opt/product/data/myid
echo "3" > /opt/product/data/myid
  1. 启动服务
export JAVA_HOME= /opt/jdk1.8.0_101/
/opt/zookeeper-3.4.9/bin/zkServer.sh start

其他两台操作相同

  1. 测试集群
    4.1 检查zookeeper状态
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

有一台服务器为 leader

4.2 创建数据
在任意一台上

./zkCli.sh -server 192.168.220.127:2181
[zk: 192.168.220.127:2181(CONNECTED) 1] create /projecttest testbylixr
Created /projecttest

在其他两台上查看
Paste_Image.png

4.3 切换leader
对leader节点 关闭
/opt/zookeeper-3.4.9/bin/zkServer.sh stop
再次检查节点状态,之前leader 已不存在,而另外两台中
有一台由 follower 变成 leader

到此,zookeeper的集群配置已完成,后期将手动改成脚本,做到简单化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容