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

本篇内容包括:Mac-Zookeeper 镜像下载、Mac-Zookeeper 单机模式部署、Mac-Zookeeper 集群模式部署。


文章目录

  • 一、Mac-Zookeeper 镜像下载
    • 1、Mac 下 Docker 的安装及配置
    • 2、配置镜像地址
    • 3、镜像(Zookeeper)下载
    • 4、安装成功信息
  • 二、Mac-Zookeeper 单机模式部署
    • 1、启动zk镜像
    • 2、查看zk镜像
    • 3、使用zk命令行客户端连接zk
  • 三、Mac-Zookeeper 集群模式部署
    • 1、启动三个zk节点
    • 2、获取三个zk地址
    • 3、修改配置文件
    • 4、重启三个zk容器
    • 5、验证集群状态

一、Mac-Zookeeper 镜像下载

1、Mac 下 Docker 的安装及配置

2、配置镜像地址

# 配置镜像地址

  "experimental": false,"debug": true,"registry-mirrors": [// 镜像地址]

# 国内镜像地址

网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com

3、镜像(Zookeeper)下载

# 没有指定TAG既是安装latest版本
docker pull zookeeper
# 也可以列出docker所有镜像,选择版本下载
docker images

4、安装成功信息

# 安装成功信息

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镜像

docker run --name zookeeper -d -p 2181:2181 zookeeper

其中:

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

2、查看zk镜像

# 查看 Zookeeper 的启动日志

docker logs -f zookeeper

# 查看 Docker 所有运行的容器

docker ps

# 表示 Zookeeper 容器正在运行中

# Docker Desktop 上查看

3、使用zk命令行客户端连接zk

# 进入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 argsaddauth scheme authcloseconfig [-c] [-w] [-s]connect host:portcreate [-s] [-e] [-c] [-t ttl] path [data] [acl]delete [-v version] pathdeleteall pathdelquota [-n|-b] pathget [-s] [-w] pathgetAcl [-s] pathhistorylistquota pathls [-s] [-w] [-R] pathls2 path [watch]printwatches on|offquitredo cmdnoremovewatches path [-c|-d|-a] [-l]rmr pathset [-s] [-v version] path datasetAcl [-s] [-v version] [-R] path aclsetquota -n|-b val pathstat [-w] pathsync 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

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 串:

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、修改配置文件

# 进入容器

docker exec -it zk1 /bin/bash

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

apt-get update
apt-get install vim

# 修改zk的配置文件

vim /conf/zoo.cfg

#修改配置文件之后查看

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文件中

# 从配置中看出,zk1的服务名为server.1, 这 1 是指定的服务名称
echo 1 > /data/myid

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

4、重启三个zk容器

# 将上面配置修改之后重启zk容器
docker restart zk1
docker restart zk2
docker restart zk3

5、验证集群状态

# 进入zk1容器

docker exec -it zk1 /bin/bash

# 查看集群状态

cd bin
./zkServer.sh status
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查看节点状态

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 集群就算是搭建完毕了

Zookeeper:Mac通过Docker安装Zookeeper集群相关推荐

  1. Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager

    Kafka 搭建: 建立Zookeeper容器: 这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器. $ do ...

  2. 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】

    视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...

  3. docker 安装mongodb集群,多台服务器

    docker 安装mongodb集群==多台服务器 - a393060727 - 博客园

  4. docker安装redis集群+设置密码

    docker安装redis集群+设置密码 采用文章 https://blog.csdn.net/BThinker/article/details/123374236 1.获取Redis镜像 shell ...

  5. zookeeper 日志查看_zookeeper 安装和集群配置

    1.首先安装jdk 2.安装zookeeper 2-1.下载zookeeper安装包 http://apache.fayea.com/zookeeper/stable/ 2-2.解压安装包 tar - ...

  6. docker 安装Kafka集群

    文章目录 前言 一.安装Zookeeper.Kafka 二.启动 1.启动Zookeeper 2.启动Kafka 3.搭建Kafka集群 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工 ...

  7. 使用Docker安装Spark集群(带有HDFS)

    本实验在CentOS 7中完成 第一部分:安装Docker 这一部分是安装Docker,如果机器中已经安装过Docker,可以直接跳过 [root@VM-48-22-centos ~]# system ...

  8. 【Docker】docker安装elasticsearch集群,Kibana安装以及开启认证

    提示: 文章目录 前言 一.Elasticsearch是什么? 二.Elasticsearch安装步骤 1.环境配置 2.系统配置修改 3.拉取镜像 4.创建挂载目录并赋权 5.安装获取elastic ...

  9. docker 安装redis集群配置3主3从,实现hash槽分配存储数据

    目录 一.docker集群安装 1.分别在宿主机的/docker/redis下创建每个节点数据同步的目录 2.执行容器启动命令 3.执行命令参数解释: 4.集群节点不够提示:提示需要至少3个maste ...

最新文章

  1. POJ1321 棋盘问题(DFS)
  2. 基于MATLAB的面对对象编程(3)——事件和响应
  3. 热插拔是什么?(Hot Swap hot-plugging hot plugging 带电插拔)USB热插拔
  4. 机器人写诗项目——数据预处理
  5. H3C服务器系统配置ip,H3C交换机DHCP 服务器动态分配地址典型配置指导
  6. 软件设计师中级-学习笔记
  7. Python 输入整数进行排序
  8. 你觉得最好用的地图导航软件是哪一个?这3款App供你选择
  9. canvas绘制笑脸
  10. listview 和RecycleView区别
  11. 服务器系统挂安卓游戏吗,云服务器可以挂游戏吗
  12. 蓝桥杯 历届试题 回文日期 C
  13. 驾考 科目一 日期相关
  14. uni-app项目中H5跨域小程序不跨域怎么解决方法(兼容H5、小程序)
  15. 基于Java+springmvc+mysql+jquery实现企业员工管理系统
  16. torch各个版本镜像_Anaconda安装Pytorch镜像详细教程
  17. 如何解决eclipse中没有代码提示的问题
  18. linux OBM分析
  19. CTFHub技能树 Web-RCE 详解
  20. Tire树(字典树-字符串快速查找)

热门文章

  1. python数组排序方法详解(sort, sorted,argsort)
  2. 步骤带图详细解释margin、padding、border、content
  3. Expression 类
  4. 开发者工具的简单使用
  5. 快手,快影 iOS App反调试
  6. 福科软件联手农贸企业打造乡镇车销运作方案
  7. IntelliJ IDEA 生成注册码源程序
  8. java movie_最简单的视频网站(JavaEE+FFmpeg)
  9. java md5加密 jar包_练习MD5加密jar包编写
  10. 安装sublime成功经验linux-ubuntu