当前位置: 首页 > news >正文

Docker安装Zookeeper教程(超详细)

生命无罪,健康万岁,我是laity。

我曾七次鄙视自己的灵魂:

第一次,当它本可进取时,却故作谦卑;

第二次,当它在空虚时,用爱欲来填充;

第三次,在困难和容易之间,它选择了容易;

第四次,它犯了错,却借由别人也会犯错来宽慰自己;

第五次,它自由软弱,却把它认为是生命的坚韧;

第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;

第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。

Docker安装ZK

  • 查看本地镜像和检索拉取Zookeeper 镜像
# 查看本地镜像
docker images
# 检索ZooKeeper 镜像
docker search zookeeper
# 拉取ZooKeeper镜像最新版本
docker pull zookeeper:latest
# 我使用的版本
docker pull zookeeper:3.5.7
  • 创建ZooKeeper 挂载目录(数据挂载目录、配置挂载目录和日志挂载目录)

mkdir -p /mydata/zookeeper/data # 数据挂载目录
mkdir -p /mydata/zookeeper/conf # 配置挂载目录
mkdir -p /mydata/zookeeper/logs # 日志挂载目录

  • 启动ZooKeeper容器
docker run -d --name zookeeper --privileged=true -p 2181:2181  -v /mydata/zookeeper/data:/data -v /mydata/zookeeper/conf:/conf -v /mydata/zookeeper/logs:/datalog zookeeper:3.5.7
  • 参数说明
-e TZ="Asia/Shanghai" # 指定上海时区 
-d # 表示在一直在后台运行容器
-p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;
--restart always #始终重新启动zookeeper,看需求设置不设置自启动
  • 添加ZooKeeper配置文件,在挂载配置文件目录(/mydata/zookeeper/conf)下,新增zoo.cfg 配置文件,配置内容如下:
dataDir=/data  # 保存zookeeper中的数据
clientPort=2181 # 客户端连接端口,通常不做修改
dataLogDir=/datalog
tickTime=2000  # 通信心跳时间
initLimit=5    # LF(leader - follower)初始通信时限
syncLimit=2    # LF 同步通信时限
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=localhost:2888:3888;2181
  • 进入容器内部,验证容器状态
# 进入zookeeper 容器内部
docker exec -it zookeeper /bin/bash
# 检查容器状态
docker exec -it zookeeper /bin/bash ./bin/zkServer.sh status
# 进入控制台
docker exec -it zookeeper zkCli.sh
  • 安装ZooInspector客户端连接

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip;

命令:java -jar zookeeper-dev-ZooInspector.jar

遇到的问题:WARNING: IPv4 forwarding is disabled. Networking will not work

解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
    net.ipv4.ip_forward=1
重启network服务
# systemctl restart network

测试

docker exec -it zookeeper zkCli.sh

在这里插入图片描述

关于zookeeper操作详细介绍的文章

Docker安装Zookeeper集群

  • 准备三台机器互相ping通
  • 配置文件zoo.cfg
cd  /mydata/zookeeper/conf
vim zoo.cfg

# 三台机器分别执行添加 
clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
  • 设置myid标识
echo 1 > /mydata/zookeeper/conf/myid
1、2、3 三台机器分别执行
zookeeper选举也会根据myid的大小进行投票master

相关文章:

  • 【学习笔记12.25】动态规划入门
  • C语言用好写好头文件
  • 程序员过圣诞 | 用HTML写出绽放的烟花
  • 源码系列 之 HashMap
  • docker logs实时查看日志tail
  • Win10从零安装、训练、部署yolov5 6.x一条龙实战案例
  • 东北大学c++实验最后一次
  • 十六、Docker Compose容器编排第一篇
  • 时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)
  • CSS预处理语言LESS与SCSS的介绍
  • 互联网摸鱼日报(2022-12-26)
  • 【Python学习记录】matplotlib绘图基本配置
  • java语言的resource 接口
  • 【C语言进阶】想用好C++?那就一定要掌握动态内存管理
  • 【Maven基础】单一架构案例(三)
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2017 前端面试准备 - 收藏集 - 掘金
  • js如何打印object对象
  • LeetCode29.两数相除 JavaScript
  • Odoo domain写法及运用
  • React组件设计模式(一)
  • springMvc学习笔记(2)
  • TCP拥塞控制
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于遗传算法的优化问题求解
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用SAX解析XML
  • 小程序01:wepy框架整合iview webapp UI
  • 小程序开发之路(一)
  • 学习ES6 变量的解构赋值
  • 一起参Ember.js讨论、问答社区。
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 终端用户监控:真实用户监控还是模拟监控?
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​2021半年盘点,不想你错过的重磅新书
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​如何防止网络攻击?
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (+4)2.2UML建模图
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)SpringCloud 整合Python
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (NSDate) 时间 (time )比较
  • (poj1.2.1)1970(筛选法模拟)
  • (poj1.3.2)1791(构造法模拟)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (算法)求1到1亿间的质数或素数
  • (转)IOS中获取各种文件的目录路径的方法
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布