当前位置: 首页>后端>正文

Docker部署ZooKeeper

在分布式系统中,ZooKeeper是一个关键的组件,用于协调和管理多个节点之间的状态。本文将详细介绍如何使用Docker安装和部署ZooKeeper,包括非集群部署和集群部署两种情况。

非集群部署

前期准备

在开始之前,请确保你已经安装了Docker,并且拥有sudo权限。

关闭防火墙和SELinux:

sudo systemctl stop firewalld

sudo systemctl disable firewalld

sudo setenforce 0

sed -i "s|SELINUX=enforcing|SELINUX=disabled|g" /etc/selinux/config

拉取镜像和创建目录

docker pull zookeeper:3.4

mkdir -p /data/zookeeper/{conf,data,logs}

添加配置

创建并编辑 /data/zookeeper/conf/zoo.cfg 文件,添加以下内容:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data

clientPort=2181

maxClientCnxns=0

autopurge.purgeInterval=1

dataLogDir=/datalog

启动ZooKeeper

运行以下命令启动ZooKeeper容器

docker run -d --net=host --name zookeeper --restart=always \

-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \

-v /data/zookeeper/conf:/conf \

-v /data/zookeeper/data/:/data \

-v /data/zookeeper/logs:/datalog \

zookeeper:3.4

集群部署

前期准备

同样地,在所有节点执行以下操作:

sudo systemctl stop firewalld

sudo systemctl disable firewalld

sudo setenforce 0

sed -i "s|SELINUX=enforcing|SELINUX=disabled|g" /etc/selinux/config

创建目录和添加配置

每个节点执行以下命令:

mkdir -p /data/zookeeper/{conf,data,logs}

编辑 /data/zookeeper/conf/zoo.cfg 文件,在每个节点上修改以下内容:

clientPort=2181

dataDir=/data

dataLogDir=/datalog

tickTime=2000

initLimit=5

syncLimit=2

server.1=10.8.16.83:2888:3888

server.2=10.8.16.84:2888:3888

server.3=10.8.17.32:2888:3888

创建标识文件

每个节点执行以下命令:

echo "1" >/data/zookeeper/data/myid

将数字 1 替换为节点的ID,分别在每个节点上执行。

启动ZooKeeper集群

在每个节点上执行以下命令启动ZooKeeper容器:

docker run -d --net=host --name zookeeper --restart=always \

-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \

-v /data/zookeeper/conf:/conf \

-v /data/zookeeper/data/:/data \

-v /data/zookeeper/logs:/datalog \

zookeeper:3.4

验证和常用命令

验证ZooKeeper集群状态

在任意节点上运行以下命令验证ZooKeeper集群状态:

docker exec -it zookeeper /zookeeper-3.4.14/bin/zkServer.sh status

ZooKeeper常用命令

连接到ZooKeeper容器并执行以下命令进行操作:

docker exec -it zookeeper /zookeeper-3.4.14/bin/zkCli.sh -server localhost:2181

在交互式命令行下,可以执行以下常用命令:

ls /:查看指定路径下的节点

create /zk mydata:创建一个节点

get /zk:显示指定路径下节点的信息

set /zk "anotherData":设置节点的内容

delete /zk:删除一个节点

除此之外,还有一些四字母命令可以用于监控和管理ZooKeeper集群:

conf:查看ZooKeeper服务的配置信息

stat:查看客户端与ZooKeeper连接的简要信息

srvr:查看ZooKeeper服务的详细信息

cons:查看客户端与ZooKeeper连接的详细信息

mntr:查看ZooKeeper服务的当前性能状况


https://www.xamrdz.com/backend/3ua1930437.html

相关文章: