前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zookeeper:Mac通过Docker安装Zookeeper集群

Zookeeper:Mac通过Docker安装Zookeeper集群

作者头像
栗筝i
发布2022-12-02 08:26:34
9610
发布2022-12-02 08:26:34
举报
文章被收录于专栏:迁移内容

此篇为 “Mac通过Docker安装Zookeeper集群”,笔者原本计划是接下来更新Zookeeper应用系列的相关内容,但相关内容依赖Zookeeper集群,虽然前面也更新了 Linux下Zookeeper在三种模式下的部署,但是大家很可能不会有相关的Linux集群准备着,所以才有了此篇:“Mac通过Docker安装Zookeeper集群”。 ~ 本篇内容包括:Mac-Zookeeper 镜像下载、Mac-Zookeeper 单机模式部署、Mac-Zookeeper 集群模式部署。

一、Mac-Zookeeper 镜像下载

1、Mac 下 Docker 的安装及配置

2、配置镜像地址

配置镜像地址

代码语言:javascript
复制
  "experimental": false,
  "debug": true,
  "registry-mirrors": [
        // 镜像地址
    ]
3、镜像(Zookeeper)下载
代码语言:javascript
复制
# 没有指定TAG既是安装latest版本
docker pull zookeeper
# 也可以列出docker所有镜像,选择版本下载
docker images
4、安装成功信息

安装成功信息

代码语言:javascript
复制
lizhengi@bogon ~ % docker pull zookeeper
Using default tag: latest
latest: Pulling from library/zookeeper
a2abf6c4d29d: Pull complete 
2bbde5250315: Pull complete 
202a34e7968e: Pull complete 
4e4231e30efc: Pull complete 
707593b95343: Pull complete 
b070e6dedb4b: Pull complete 
46e5380f3905: Pull complete 
8b7e330117e6: Pull complete 
Digest: sha256:2c8c5c2db6db22184e197afde13e33dad849af90004c330f20b17282bcd5afd7
Status: Downloaded newer image for zookeeper:latest
docker.io/library/zookeeper:latest

二、Mac-Zookeeper 单机模式部署

1、启动zk镜像
代码语言:javascript
复制
docker run --name zookeeper -d -p 2181:2181 zookeeper

其中:

  • —name :创建一个名称为 zookeeper 的容器
  • -p :将容器的 2181 端口挂载到宿主机的 2181 端口
  • -d : 容器以后台的形式运行
2、查看zk镜像

查看 Zookeeper 的启动日志

代码语言:javascript
复制
docker logs -f zookeeper

查看 Docker 所有运行的容器

代码语言:javascript
复制
docker ps

表示 Zookeeper 容器正在运行中

Docker Desktop 上查看

3、使用zk命令行客户端连接zk
代码语言:javascript
复制
# 进入zookeeper容器
docker exec -it zookeeper /bin/bash

# 进入容器内部bin目录下
cd bin

# 客户端请求连接服务器
./zkCli.sh

# 客户端连接服务器成功标志
Welcome to ZooKeeper!

# h - 客户端命令帮助
[zk: localhost:2181(CONNECTED) 0] h
ZooKeeper -server host:port cmd args
    addauth scheme auth
    close
    config [-c] [-w] [-s]
    connect host:port
    create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    delete [-v version] path
    deleteall path
    delquota [-n|-b] path
    get [-s] [-w] path
    getAcl [-s] path
    history
    listquota path
    ls [-s] [-w] [-R] path
    ls2 path [watch]
    printwatches on|off
    quit
    redo cmdno
    removewatches path [-c|-d|-a] [-l]
    rmr path
    set [-s] [-v version] path data
    setAcl [-s] [-v version] [-R] path acl
    setquota -n|-b val path
    stat [-w] path
    sync path
    
# 展示制定目录下结构
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
# 创建一个节点并对节点进行赋值
[zk: localhost:2181(CONNECTED) 1] create /test name
Created /test
# 再次查看目录
[zk: localhost:2181(CONNECTED) 2] ls /
[test, zookeeper]
# 获取节点的内容
[zk: localhost:2181(CONNECTED) 3] get /test
name

三、Mac-Zookeeper 集群模式部署

1、启动三个zk节点

启动三个zk节点,节点端口映射关系分别为:2181:2181、2182:2181、2183:2181

代码语言:javascript
复制
docker run -d --name zk1 -p 2181:2181 -d zookeeper
docker run -d --name zk2 -p 2182:2181 -d zookeeper
docker run -d --name zk3 -p 2183:2181 -d zookeeper

查看启动成功

2、获取三个zk地址

通过命令 docker inspect {container_name}, 返回的是一个关于 docker 容器信息的一个 json 串:

代码语言:javascript
复制
lizhengi@bogon ~ % docker inspect zk1
{
	...
 				"IPAddress": "172.17.0.2",
 	...
}

根据"IPAddress": "172.17.0.2", 我们可以获取到所有 zookeeper 单节点的 ip 地址:

  • zk1:172.17.0.2
  • zk2:172.17.0.3
  • zk3:172.17.0.4
3、修改配置文件

进入容器

代码语言:javascript
复制
docker exec -it zk1 /bin/bash

安装vim(容器中默认是没有vi或vim的)

代码语言:javascript
复制
apt-get update
apt-get install vim

修改zk的配置文件

代码语言:javascript
复制
vim /conf/zoo.cfg

#修改配置文件之后查看

代码语言:javascript
复制
root@fbecc74eaf1a:/apache-zookeeper-3.7.0-bin# cat /conf/zoo.cfg
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
# 2888是zk集群之间通信的端口
# 3888是zk集群之间投票选主的端口
server.1=172.17.0.2:2888:3888
server.2=172.17.0.3:2888:3888
server.3=172.17.0.4:2888:3888

将1输出到/data/myid文件中

代码语言:javascript
复制
# 从配置中看出,zk1的服务名为server.1, 这 1 是指定的服务名称  
echo 1 > /data/myid

将 zk2、zk3 也按照 zk1 的步骤配置一遍,唯一的不同在于 echo 输出的是不同 zk 节点的服务名称

4、重启三个zk容器
代码语言:javascript
复制
# 将上面配置修改之后重启zk容器
docker restart zk1
docker restart zk2
docker restart zk3
5、验证集群状态

进入zk1容器

代码语言:javascript
复制
docker exec -it zk1 /bin/bash

查看集群状态

代码语言:javascript
复制
cd bin
./zkServer.sh status
代码语言:javascript
复制
root@fbecc74eaf1a:/apache-zookeeper-3.7.0-bin# cd bin
root@fbecc74eaf1a:/apache-zookeeper-3.7.0-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

可以看出 Mode 是 follower, 证明 zk1 是从节点

接下来进入zk2查看节点状态

代码语言:javascript
复制
lizhengi@bogon ~ % docker exec -it zk2 /bin/bash
root@24f30a4fca2b:/apache-zookeeper-3.7.0-bin# cd bin
root@24f30a4fca2b:/apache-zookeeper-3.7.0-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

zk2 的 Model 是 leader, 证明是主节点, zk3 不用看也就知道是从节点。

至此,整个基于 docker 的 zk 集群就算是搭建完毕了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Mac-Zookeeper 镜像下载
  • 配置镜像地址
  • 安装成功信息
    • 二、Mac-Zookeeper 单机模式部署
    • 查看 Zookeeper 的启动日志
    • 查看 Docker 所有运行的容器
    • 表示 Zookeeper 容器正在运行中
    • Docker Desktop 上查看
      • 三、Mac-Zookeeper 集群模式部署
      • 启动三个zk节点,节点端口映射关系分别为:2181:2181、2182:2181、2183:2181
      • 查看启动成功
      • 通过命令 docker inspect {container_name}, 返回的是一个关于 docker 容器信息的一个 json 串:
      • 根据"IPAddress": "172.17.0.2", 我们可以获取到所有 zookeeper 单节点的 ip 地址:
      • 进入容器
      • 安装vim(容器中默认是没有vi或vim的)
      • 修改zk的配置文件
      • 将1输出到/data/myid文件中
      • 进入zk1容器
      • 查看集群状态
      • 接下来进入zk2查看节点状态
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档