docker搭建zookeeper高可用集群

您所在的位置:网站首页 zookeeper实现hadoop高可用 docker搭建zookeeper高可用集群

docker搭建zookeeper高可用集群

#docker搭建zookeeper高可用集群| 来源: 网络整理| 查看: 265

docker搭建zookeeper高可用集群

作者:陈健斌(funkye) github id: a364176773

一.首先挑选合适的zookeeper版本

笔者挑选3.4.14 版本作为本篇教程

docker pull zookeeper:3.4.14 二.做好磁盘的映射保证即便数据不丢失 2.1 首先创建相关的zk配置和映射目录

在这里插入图片描述 在合适的目录下创建conf,主要放置公用的zoo.cfg,再依次创建每个节点的目录,这里我是采用3个节点进行搭建. 然后我们开始创建zoo.cfg

cd conf vim zoo.cfg

填入公用配置

clientPort=2181 dataDir=/data dataLogDir=/data/log tickTime=2000 initLimit=5 syncLimit=2 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=60 server.1=172.18.0.11:2888:3888 server.2=172.18.0.12:2888:3888 server.3=172.18.0.13:2888:3888

我们预先把3台zk容器的ip先设置好,届时只要固定容器ip即可. 然后我们进入zk1 zk2 zk3 并为这三个文件夹中创建data文件夹

cd zk1 mkdir data cd data vim myid 1 esc :wq

以此类推,zk1的myid就是1,zk2就是2.

三.构建容器 3.1 执行构建容器的命令 docker run -itd -p 2182:2181 --network mynetwork --ip 172.18.0.12 -v /home/funkye/zk/zk2/data:/data -v /home/funkye/zk/conf:/conf --privileged=true --name zk2 zookeeper:3.4.14 docker run -itd -p 2181:2181 --network mynetwork --ip 172.18.0.11 -v /home/funkye/zk/zk1/data:/data -v /home/funkye/zk/conf:/conf --privileged=true --name zk1 zookeeper:3.4.14 docker run -itd -p 2183:2181 --network mynetwork --ip 172.18.0.13 -v /home/funkye/zk/zk3/data:/data -v /home/funkye/zk/conf:/conf --privileged=true --name zk3 zookeeper:3.4.14

-v 是映射我们的conf到zk容器的conf中,未来模拟扩容的时候,我们只要改外部宿主机上的conf,再按照扩容做法,启动新的节点,再依次重启之前已存在的zk即可.

docker ps

查看我们是否容器已经在运行 在这里插入图片描述 看起来一切都正常了,我们去容器看下各自zk的状态

docker exec -it zk1 /bin/bash zkServer.sh status

如果你看到如下信息说明基本你已经搭建完毕了,仅需再去其它几台确认

ZooKeeper JMX enabled by default Using config: /conf/zoo.cfg Mode: follower

确认完毕后,恭喜你docker 安装zookeeper集群已经完毕了,接下来我们可以测试下写入一些节点信息,看看其它follower节点是否也能接受到,笔者这次首先挑选为follower的zk1节点进行写入,看看是否会转发到leader节点写入.

docker exec -it zk1 /bin/bash zkCli.sh ls /

可以看到目前只有zookeeper一个node节点,我们来写入一个test节点

[zk: localhost:2181(CONNECTED) 0] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 1] [zk: localhost:2181(CONNECTED) 4] create /test test Created /test [zk: localhost:2181(CONNECTED) 5] ls / [zookeeper, test]

看起来在follower节点写入成功了,我们再去其它节点上验证一下

funkye@LAPTOP-LKAGO3OF:~$ docker exec -it zk2 /bin/bash root@84b60cc9d761:/zookeeper-3.4.14# zkServer.sh status ZooKeeper JMX enabled by default Using config: /conf/zoo.cfg Mode: follower root@84b60cc9d761:/zookeeper-3.4.14# zkCli.sh Connecting to localhost:2181 log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Welcome to ZooKeeper! JLine support is enabled [zk: localhost:2181(CONNECTING) 0] WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper, test] [zk: localhost:2181(CONNECTED) 1]

看起来我们顺利的搭建完成了,在follower中的写入被转发到了leader上,再通过zab协议,同步到了follower上.

四.总结

恭喜,看到这里你一定已经搭建完成了zookeeper集群,欢迎之后继续关注我的github和博客 https://github.com/a364176773 https://blog.funkye.icu/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3