docker搭建zookeeper高可用集群 |
您所在的位置:网站首页 › zookeeper实现hadoop高可用 › docker搭建zookeeper高可用集群 |
docker搭建zookeeper高可用集群
作者:陈健斌(funkye) github id: a364176773 一.首先挑选合适的zookeeper版本笔者挑选3.4.14 版本作为本篇教程 docker pull zookeeper:3.4.14 二.做好磁盘的映射保证即便数据不丢失 2.1 首先创建相关的zk配置和映射目录
填入公用配置 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查看我们是否容器已经在运行 如果你看到如下信息说明基本你已经搭建完毕了,仅需再去其它几台确认 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 |