【Docker安装部署Zookeeper集群】

Docker安装部署Zookeeper集群

Docker拉取Zookeeper的镜像文件

docker pull zookeeper

Docker创建 bridge 网络

创建自定义网络
docker network create --driver bridge --subnet 172.18.0.0/16 zookeeper_network
查看已经存在的网络
docker network ls

运行结果截图:
在这里插入图片描述

集群模式启动

创建主节点挂载目录
# 创建 zookeeper 主节点配置存放目录
mkdir -p /mydata/zookeeper/master/conf
# 创建 zookeeper 主节点数据存放目录
mkdir -p /mydata/zookeeper/master/data
# 创建 zookeeper 主节点数据日志存放目录
mkdir -p /mydata/zookeeper/master/datalog
# 创建 zookeeper 主节点日志存放目录
mkdir -p /mydata/zookeeper/master/logs

创建从节点1挂载目录
# 创建 zookeeper 节点1 配置存放目录
mkdir -p /mydata/zookeeper/node1/conf
# 创建 zookeeper 节点1 数据存放目录
mkdir -p /mydata/zookeeper/node1/data
# 创建 zookeeper 节点1 数据日志存放目录
mkdir -p /mydata/zookeeper/node1/datalog
# 创建 zookeeper 节点1 日志存放目录
mkdir -p /mydata/zookeeper/node1/logs



创建从节点2挂载目录

# 创建 zookeeper 节点2 配置存放目录
mkdir -p /mydata/zookeeper/node2/conf
# 创建 zookeeper 节点2 数据存放目录
mkdir -p /mydata/zookeeper/node2/data
# 创建 zookeeper 节点2 数据日志存放目录
mkdir -p /mydata/zookeeper/node2/datalog
# 创建 zookeeper 节点2 日志存放目录
mkdir -p /mydata/zookeeper/node2/logs

运行结果截图:

在这里插入图片描述

在这里插入图片描述

创建主配置文件
# zookeeper 主节点配置存放目录
cd /mydata/zookeeper/master/conf
# 编辑配置文件
vim zoo.cfg



创建从节点1配置文件
# zookeeper 节点1 配置存放目录
cd /mydata/zookeeper/node1/conf
# 编辑配置文件
vim zoo.cfg


创建从节点2配置文件
# zookeeper 节点2 配置存放目录
cd /mydata/zookeeper/node2/conf
# 编辑配置文件
vim zoo.cfg
zoo.cfg配置文件中的内容
# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里
dataDir=/data

# 事物日志存储地点,如果没提供的话使用的则是 dataDir
dataLogDir=/datalog

# 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位
tickTime=2000

# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
initLimit=5

# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
syncLimit=2

# 默认值为3,不支持以系统属性方式配置。用于配置Zookeeper在自动清理的时候需要保留的快照数据文件数量和对应的事务日志文件。此参数的最小值为3,如果配置的值小于3会自动调整到3
autopurge.snapRetainCount=3

# 默认值为0,单位为小时,不支持以系统属性方式配置。用于配置Zookeeper进行历史文件自动清理的频率。如果配置为0或负数,表示不需要开启定时清理功能
autopurge.purgeInterval=0

# 默认为60,不支持以系统属性方式配置。从Socket层面限制单个客户端与单台服务器之间的并发连接数,即以ip地址来进行连接数的限制。
# 如果设置为0,表示不做任何限制。仅仅是单台客户端与单个Zookeeper服务器连接数的限制,不能控制所有客户端的连接数总和
maxClientCnxns=60

# 3.5.0中的新功能:当设置为false时,可以在复制模式下启动单个服务器,单个参与者可以使用观察者运行,并且群集可以重新配置为一个节点,并且从一个节点。
# 对于向后兼容性,默认值为true。可以使用QuorumPeerConfig的setStandaloneEnabled方法或通过将“standaloneEnabled = false”或“standaloneEnabled = true”添加到服务器的配置文件来设置它。
standaloneEnabled=false

# 内嵌的管理控制台,停用这个服务
admin.enableServer=false

# 开启四字命令,将所有命令添加到白名单中
4lw.commands.whitelist=*

# 集群中服务的列表
server.1=172.18.0.6:2888:3888;2181
server.2=172.18.0.7:2888:3888;2181
server.3=172.18.0.8:2888:3888;2181
zoo.cfg配置文件中参数的说明解释说明
tickTime=2000zookeeper里面最小的时间单位为2000ms
initLimit=10Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit 时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了
syncLimit=5在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题
dataDir存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能
dataLogDir事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能
clientPort客户端连接server的端口,即对外服务端口 ,默认是2181
server.1配置集群节点
hadoop-node01:2888:3888主机名, 心跳端口、数据端口 的格式
集群模式启动-主节点启动
# 启动命令
docker run -d --restart always \
--name zookeeper-master \
--network zookeeper_network \
--ip 172.18.0.6 \
-p 2181:2181 \
-e ZOO_MY_ID=1 \
-v /mydata/zookeeper/master/conf/zoo.cfg:/conf/zoo.cfg \
-v /mydata/zookeeper/master/data:/data \
-v /mydata/zookeeper/master/datalog:/datalog \
-v /mydata/zookeeper/master/logs:/logs \
zookeeper
集群模式启动-从节点1启动
# 启动命令
docker run -d --restart always \
--name zookeeper-node1 \
--network zookeeper_network \
--ip 172.18.0.7 \
-p 2182:2181 \
-e ZOO_MY_ID=2 \
-v /mydata/zookeeper/node1/conf/zoo.cfg:/conf/zoo.cfg \
-v /mydata/zookeeper/node1/data:/data \
-v /mydata/zookeeper/node1/datalog:/datalog \
-v /mydata/zookeeper/node1/logs:/logs \
zookeeper
集群模式启动-从节点2启动
# 启动命令
docker run -d --restart always \
--name zookeeper-node2 \
--network zookeeper_network \
--ip 172.18.0.8 \
-p 2183:2181 \
-e ZOO_MY_ID=3 \
-v /mydata/zookeeper/node2/conf/zoo.cfg:/conf/zoo.cfg \
-v /mydata/zookeeper/node2/data:/data \
-v /mydata/zookeeper/node2/datalog:/datalog \
-v /mydata/zookeeper/node2/logs:/logs \
zookeeper
查看集群启动的状态
# 在容器 zookeeper-master 中开启一个交互模式的终端
docker exec -it zookeeper-master /bin/bash

# 查看 zookeeper 状态
cd bin
zkServer.sh status

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

好了,到这里【Docker安装部署Zookeeper集群】就完成了,恭喜你!!!Zookeeper集群你已经轻松拿捏了,那么部署单个的Zookeeper相信你也绝对没有问题!!!Zookeeper更多优质的内容持续创作中,欢迎各位铁铁们点赞关注呦 ^ _ ^。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值