Docker应用系列(二)| 构建Zookeeper集群
本示例基于Centos 7,在阿里云的三台机器上部署zookeeper集群,假设目前使用的账号为release,拥有sudo权限。
由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下载加速器,可参考此文进行配置。
假设三台主机的ip分别为:
- 主机一:192.168.0.1
- 主机二:192.168.0.2
- 主机三:192.168.0.3
三台主机的安装步骤相似,以主机一为例:
1. 安装docker服务:
sudo yum install -y docker
2. 启动docker服务:
sudo service docker start
3. 查找zookeeper镜像:
sudo docker search zookeeper
4. 下载官方redis镜像:
sudo docker pull docker.io/zookeeper
5. 下载完后可检查镜像:
sudo docker images
6. 主机上建立挂载目录和zookeeper配置文件:
mkdir -p /data/zookeeper_data/conf
mkdir -p /data/zookeeper_data/data
cd /data/zookeeper_data/conf
touch zoo.cfg
vi zoo.cfg
三台主机上的zoo.cfg配置信息如下:
clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.0=192.168.0.1:2888:3888
server.1=192.168.0.2:2888:3888
server.2=192.168.0.3:2888:3888
在主机一上为自己分配server id,命令如下:
cd /data/zookeeper_data/data
touch myid
echo > myid
在主机二上为自己分配server id,命令如下:
cd /data/zookeeper_data/data
touch myid
echo > myid
在主机二上为自己分配server id,命令如下:
cd /data/zookeeper_data/data
touch myid
echo > myid
7. 三台主机依次启动容器:
sudo docker run --network host -v /data/zookeeper_data/data:/data -v /data/zookeeper_data/conf:/conf --name zk- -d docker.io/zookeeper
命令说明:
- --network host: 使用主机上的网络配置,如果不用这种模式,而用默认的bridge模式,会导致容器跨主机间通信失败
- -v /data/zookeeper_data/data:/data:主机的数据目录挂载到容器/data下
- -v /data/zookeeper_data/conf:/conf: 主机的配置目录挂载到容器的/conf下,容器内的zkServer.sh默认会读取/conf/zoo.cfg下的配置
都启动完成后,每台主机的2181/2888/3888端口都会开放出来了
8. 检查容器的启动情况:
sudo docker exec -it 容器id /bin/bash
进入容器内部后,其工作目录为:/zookeeper-3.4.13(版本依据镜像而定),执行zookeeper检查:
[release@sh-lbs02 data]$ sudo docker exec -it /bin/bash
[sudo] password for release:
bash-4.4# pwd
/zookeeper-3.4.
bash-4.4# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower
bash-4.4#
可以看到这个容器目前为从机状态,至此集群已启动完成。
9. 若启动失败了,通过如下命令观察zookeeper的启动日志:
sudo docker logs 容器id/容器名称
内容示例如下:
[release@sh-lbs02 ~]$ sudo docker logs zk-
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.server.quorum.QuorumPeerConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Docker应用系列(二)| 构建Zookeeper集群的更多相关文章
- 【拆分版】Docker-compose构建Zookeeper集群管理Kafka集群
写在前边 在搭建Logstash多节点之前,想到就算先搭好Logstash启动会因为日志无法连接到Kafka Brokers而无限重试,所以这里先构建下Zookeeper集群管理的Kafka集群. 众 ...
- Docker 一步搞定 ZooKeeper 集群的搭建
Docker 一步搞定 ZooKeeper 集群的搭建 背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 ...
- 使用 Docker 一步搞定 ZooKeeper 集群的搭建
背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 Docker 的镜像了, 于是就尝试了一下, 发现真是爽 ...
- 构建Zookeeper集群(zkcluster) ~一篇文章玩转zk集群^.^
概念 Zookeeper集群是由一个leader(负责人)主机和多个follower(追随者)或observer(观察者)主机组成. 构建一个Zookeeper集群需要有一个leader和一个foll ...
- 定时组件quartz系列<二>quartz的集群原理
1.基本信息: Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2Se和J2EE应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它 来为执行一个作业而创建简单的或 ...
- LVS系列二、LVS集群-DR模式
一. LVS-DR和LVS-IP TUN集群概述 1. Direct Routing(直接路由) Director分配请求到不同的real server.real server处理请求后直接回应给用 ...
- ElasticSearch实践系列(二):探索集群
前言 为了方便ELK的逐步搭建,我们本篇文章先安装Kibana,然后用Kibana的DevTols执行命令.也可以安装elasticsearch-head运行命令. 安装Kibana 参考Instal ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- zookeeper集群搭建及Leader选举算法源码解析
第一章.zookeeper概述 一.zookeeper 简介 zookeeper 是一个开源的分布式应用程序协调服务器,是 Hadoop 的重要组件. zooKeeper 是一个分布式的,开放源码的分 ...
随机推荐
- 1.redis设计与实现--简单动态字符串
1.redis没有使用c语言的字符串表示,而是使用更加适合自己的SDS(simple dynamic string),简单动态字符串,结构如下: 2.sys与c字符串的对比: 3.总结: redis采 ...
- Redhat安装配置VNC服务器
1. 检查安装VNC服务器 # rpm -qa|grep vnc 如果返回信息中有tigervnc-server,说明已安装了VNC:如果没有: # yum install tigervnc # yu ...
- dubbo 响应超时异常: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout.
因为dubbo默认的时间是500ms,超过这个时间它会重新请求服务层,最多尝试三次. 如果数据量比较大就不行了显示出来的异常为timeout. 在服务提供端设置timeout=1200000 并且加了 ...
- 朋友封装的一个ASP.NET上传文件的方法
朋友做了asp.net开发多年,做了这个,自我感觉封装得还不错!!! 代码如下: #region 上传文件的方法 /// <summary> /// 上传文件方法 /// </sum ...
- 2017ACM暑期多校联合训练 - Team 1 1003 HDU 6035 Colorful Tree (dfs)
题目链接 Problem Description There is a tree with n nodes, each of which has a type of color represented ...
- 背包DP FOJ 2214
题目:http://acm.fzu.edu.cn/problem.php?pid=2214 (http://www.fjutacm.com/Problem.jsp?pid=2053) 这题看起来是一题 ...
- oracle 归档模式、补充日志
1.归档模式: Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做 ...
- 全面了解 Nginx 主要应用场景
前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得.所以还请见谅,同时欢迎留言交流 N ...
- Python Random模块生成伪随机数字
This module implements pseudo-random number generators for various distributions. 对于整数,有一个范围的均匀选择: 对 ...
- selenium grid结构图
调用 Selenium-Grid 的基本结构图如下: 上面是使用 selenium-grid 的一种普通方式,仅仅使用了其支持的分布式执行的功能,即当你同时需 要测试用例比较多时,可以平行的执行这些用 ...