Zookeeper完全分布式集群服务

news2024/9/25 1:24:04

准备好3台服务器:

  • [x]A-> centos7s:192.168.19.1

  • [x]B-> centos7_1:192.168.19.2

  • [x]C-> centos7_2:192.168.19.3

配置Zookeeper安装目录

  • 在3台宿主机配置zookeeper安装目录:/docker/develop/zookeeper

  • 并且在文件夹创建 data 和logs 目录:mkdir -p /docker/develop/zookeeper/data && mkdir -p /docker/develop/zookeeper/logs

mkdir -p /docker/develop/zookeeper/data
mkdir -p /docker/develop/zookeeper/logs
  • 授权文件目录:chmod -R 777 /docker/develop/zookeeper/

安装和部署Zookeeper

拉取zookeeper镜像:docker pull zookeeper:3.5.6

[root@centos-helios ~]# docker pull zookeeper:3.5.6
3.5.6: Pulling from library/zookeeper
8ec398bc0356: Pull complete
8e866b095956: Pull complete
e18af1784b1f: Pull complete
9cec9f51936c: Pull complete
475dcbe0e2e9: Pull complete
222ebb7346b3: Pull complete
f0552f5b3f6c: Pull complete
cdfcdbc43b13: Pull complete
Digest: sha256:6b6b5f7fb6a47d2b311df5af1718af5a425a679dbb844d77913fa68d1a8bf0fd
Status: Downloaded newer image for zookeeper:3.5.6
docker.io/library/zookeeper:3.5.6
[root@centos-helios ~]#

临时安装Zookeeper服务:zookeeper-tmp-server

 docker run -itd -p 2181:2181 --restart always --name=zookeeper-tmp-server \
  --privileged=true  \
  -v /docker/develop/zookeeper/data:/data \
  -v /docker/develop/zookeeper/datalog:/datalog  \
  -v /docker/develop/zookeeper/logs:/logs  \
  -e "ZOO_STANDALONE_ENABLED=true"  \
  -e "TZ=Asia/Shanghai"  \
  -e "ZOO_4LW_COMMANDS_WHITELIST=*"  \
  -e "ZOO_AUTOPURGE_SNAPRETAINCOUNT=5" \
  -e "ZOO_AUTOPURGE_PURGEINTERVAL=24" \
  -e "ZOO_MAX_CLIENT_CNXNS=64"  \
  -e "ZOO_TICK_TIME=2000" \
  -e "ZOO_INIT_LIMIT=100" \
  -e "ZOO_SYNC_LIMIT=5"  \
  zookeeper:3.5.6

复制zookeeper-tmp-server的conf到/docker/develop/zookeeper:

1.查看容器列表:docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"

[root@centos-helios zookeeper]# docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
CONTAINER ID        NAMES                  PORTS
71ad055739b6        zookeeper-tmp-server   2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp
[root@centos-helios zookeeper]#

2.执行Docker cp 命令:docker cp Zookeeper容器ID:/conf /docker/zookeeper/

[root@centos-helios zookeeper]# docker cp 71ad055739b6:/conf /docker/develop/zookeeper/
[root@centos-helios zookeeper]#

centos7:docker cp 71ad055739b6:/conf /docker/zookeeper/

centos7_1:docker cp bf9df9966efb:/conf /docker/zookeeper/

centos7_2:docker cp 4b4f8e813c80:/conf /docker/zookeeper/

编写zookeeper的zoo.cfg配置文件:

1.服务器集群配置:

  • [x]centos7:192.168.19.1:2888:3888

  • [x]centos7_1:192.168.19.2:2888:3888

  • [x]centos7_2:192.168.19.3:2888:3888

2.对应的配置文件配置如下:

  • [x]centos7:/docker/zookeeper/conf/zoo.cfg

tickTime=2000
initLimit=100
syncLimit=5
dataDir=/data
dataLogDir=/datalog
clientPort=2181
quorumListenOnAllIPs=true
preAllocSize=64M
globalOutstandingLimit=100000
snapCount=50000
maxClientCnxns=64
minSessionTimeout=4000
maxSessionTimeout=40000
4lw.commands.whitelist=*
admin.enableServer=true
server.1=192.168.19.1:2888:3888
server.2=192.168.19.2:2888:3888
server.3=192.168.19.3:2888:3888
tcpKeepAlive=true
ipReachableTimeout=0
cnxTimeout=3
electionAlg=3
autopurge.snapRetainCount=5
autopurge.purgeInterval=24
#忽略ACL验证
skipACL=yes
forceSync=yes
server.1=阿里云[外网IP OR 内网IP]:2888:3888
server.2=阿里云[外网IP OR 内网IP]:2888:3888
server.3=阿里云[外网IP OR 内网IP]:2888:3888

编写正式安装Dcoekr命令:

  • [x]centos-helios:

docker run -itd -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart always --name=zookeeper-server --hostname zookeeper-server --privileged=true \
-v /docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg \
-v /docker/zookeeper/data:/data \
-v /docker/zookeeper/datalog:/datalog \
-v /docker/zookeeper/logs:/logs \
-e "TZ=Asia/Shanghai" \
-e "ZOO_MY_ID=1" \
-e "JAVA_OPTS=-server -Xms512m -Xmx512m -Xmn256m -Duser.home=/opt -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:+AlwaysPreTouch -XX:-UseBiasedLocking" \
zookeeper:3.5.6
  • [x]centos-hestia:

docker run -itd -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart always --name=zookeeper-server --hostname zookeeper-server --privileged=true \
-v /docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg \
-v /docker/zookeeper/data:/data \
-v /docker/zookeeper/datalog:/datalog \
-v /docker/zookeeper/logs:/logs \
-e "TZ=Asia/Shanghai" \
-e "ZOO_MY_ID=2" \
-e "JAVA_OPTS=-server -Xms512m -Xmx512m -Xmn256m -Duser.home=/opt -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:+AlwaysPreTouch -XX:-UseBiasedLocking" \
zookeeper:3.5.6
  • [x]centos-hebe:

docker run -itd -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart always --name=zookeeper-server --hostname zookeeper-server --privileged=true \
-v /docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg \
-v /docker/zookeeper/data:/data \
-v /docker/zookeeper/datalog:/datalog \
-v /docker/zookeeper/logs:/logs \
-e "TZ=Asia/Shanghai" \
-e "ZOO_MY_ID=3" \
-e "JAVA_OPTS=-server -Xms512m -Xmx512m -Xmn256m -Duser.home=/opt -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:+AlwaysPreTouch -XX:-UseBiasedLocking" \
zookeeper:3.5.6

后续服务配置

1.开放端口[2181 2888 3888]

  • [1].启动防火墙:systemctl start firewalld.service

  • [2].查看防火墙状态:systemctl status firewalld.service

  • [3].开放端口:firewall-cmd --zone=public --add-port=端口号/tcp --permanent

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
  • [4].加载初始化防火墙生效:firewall-cmd --reload

  • [5].停用防火墙:systemctl stop firewalld.service

2.配置启动以及测试zookeeper服务:

  • [x]启动容器Zookeeper服务顺序:A->B->C-重启A

  • [x]进入容器输入:bin/zkServer.sh status

    centos7:

root@zookeeper-server:/apache-zookeeper-3.5.6-bin# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
root@zookeeper-server:/apache-zookeeper-3.5.6-bin#

centos7_1:

root@zookeeper-server:/apache-zookeeper-3.5.6-bin# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
root@zookeeper-server:/apache-zookeeper-3.5.6-bin#

centos7_2:

root@zookeeper-server:/apache-zookeeper-3.5.6-bin# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
root@zookeeper-server:/apache-zookeeper-3.5.6-bin#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32Cube串口USART发送接收数据

本文代码使用 HAL 库。 文章目录前言一、USART 同步/异步串行接收/发送器二、USART 原理图三、CubeMX 创建工程四、usart.c 文件解析五,设计实验:在 串口输入字符点亮led实验现象:总结前言 这篇文章介绍 实现 USART 异步模式下 通过 串口助手…

去了字节跳动,才知道年薪40W的测试居然有这么多?

今年大环境不好,内卷的厉害,薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最‘厉害’? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的…

【设计模式】 观察者模式介绍及C代码实现

【设计模式】 观察者模式介绍及C代码实现 背景 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”,即一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。…

连续隐身四天、被传退出德云社,于谦未参加相声大会的原因找到了

欲戴皇冠,必受其重。意思就是一个人拥有一定的地位和声望,就会承担由此带来的责任和压力。 就拿德云社郭德纲搭档于谦来说,虽然他是一个谦虚低调的人,但是因为郭德纲老师名气太大,也让于谦伴随着一起名声鹊起。于谦老师…

chatgpt的原理 第三部分

对话 我们是如何学会中文的?从0岁开始,听、说,也就是对话。 我们是如何学外语的?看教材,听广播,背单词。唯独缺少了对话!正是因为缺少了对话这个高效的语言学习方式,所以我们的英语…

8个小程序开源项目助你快速搭建小程序

今天和大家分享几个小程序开源项目, 帮助我们轻松搭建自己的小程序应用. 我会从大家最熟悉的小程序UI组件, 到可视化库, 再到完整项目, 一一和大家介绍.小程序UI组件库小程序多端开发框架小程序可视化图表库经典小程序开源项目小程序UI组件库1. vant-weappVant Weapp 是移动端 …

MXNet中使用卷积神经网络textCNN对文本进行情感分类

在图像识别领域,卷积神经网络是非常常见和有用的,我们试图将它应用到文本的情感分类上,如何处理呢?其实思路也是一样的,图片是二维的,文本是一维的,同样的,我们使用一维的卷积核去处…

LLVM程序分析与编译转换框架论文分享

LLVM 2004年论文原文 概述 本文描述了 LLVM(低级虚拟机),一种编译器框架,旨在通过在编译时、链接时、运行时,以及运行之间的空闲时间。 LLVM 以静态单一赋值 (SSA) 形式定义了一种通用的低级代码表示,具有…

多区域的OSPF实战配置

多区域的OSPF实战配置 需求 如图配置设备的接口IP地址如图规划OSPF网络的区域要求每个设备的 router-id 都是 x.x.x.x(x是每个路由器的名字)确保不同的PC之间可以互通 拓扑图 配置命令 PC1: 192.168.1.1 255.255.255.0 192.168.1.254PC2:…

【手把手一起学习】(六) Altium Designer 20 STM32核心板Demo----PCB设计

1 PCB设计 PCB设计是制作STM32核心板的关键步骤,其关系到最终生产厂家制作的电路板能否正常使用,PCB设计包括布局,裁板,布线,覆铜,DRC检查等,其中要求、细节、技巧比较多,以后会更详…

redis(7)哈希Hash

哈希Hash Redis hash 是一个键值对集合。 Redis hash 是一个 string 类型的 field 和 value 的映射表&#xff0c;hash 特别适合用于存储对象。 类似 Java 里面的 Map<String,Object>。 用户 ID 为查找的 key&#xff0c;存储的 value 用户对象包含姓名&#xff0c;年…

西北工业大学大学物理(II)选填解析2019-2020期末

2 又是考查“一个电子和一个光子具有相同的波长&#xff0c;则二者动量相等。”4 斯特恩盖拉赫实验&#xff0c;原子的自旋磁矩取向量子化。7 通常我们感受不到电子的波动性。因为其波长短&#xff0c;其实也就是粒子运动速率高。10 考查无限长直导线周围B分布。常见的模型要记…

【035】基于Vue的电商推荐管理系统(含源码数据库、超详细论文)

摘 要&#xff1a;基于Vue&#xff0b;Nodejs&#xff0b;mysql的电商推荐管理系统&#xff0c;这个项目论文超详细&#xff0c;er图、接口文档、功能展示、技术栈等说明特别全&#xff01;&#xff01;&#xff01; &#xff08;文末附源码数据库、课设论文获取方式&#xff0…

xgboost学习-原理

文章目录一、xgboost库与XGB的sklearn APIXGBoost的三大板块二、梯度提升树提升集成算法&#xff1a;重要参数n_estimators三、有放回随机抽样&#xff1a;重要参数subsample四、迭代决策树&#xff1a;重要参数eta总结一、xgboost库与XGB的sklearn API 现在&#xff0c;我们有…

【ROS学习笔记4】话题通信

【ROS学习笔记4】话题通信 文章目录【ROS学习笔记4】话题通信零、话题通信概述一、话题通信的理论模型二、话题通信基本操作的Cpp实现三、话题通信基本操作的Python实现四、话题通信自定义msg五、话题通信自定义msg调用的Cpp实现六、话题通信自定义msg的Python实现七、Referenc…

《MySQL学习》 Order by 工作原理

《MySQL学习》 Order by 工作原理 一.排序缓存 sort_buffer 当我们使用explain 分析一条带有排序操作的SQL语句时&#xff0c;会看到Extra中有使用 Using filesort explain select * from t order by k descMySQL 会为每个线程分配固定大小的 sort buffer 用作排序。 sort b…

SAP 怎么冲销已冲销的凭证?

假如有这么一种场景&#xff1a;你做了一张凭证A&#xff0c;你第一次发现账务做错了。你用fb08来冲销A&#xff0c;生成了冲销凭证B&#xff0c;然后第二次检查的时候你发现&#xff0c;凭证A其实没错&#xff0c;这时候能不能把冲销凭证B撤销掉&#xff1f; 然后凭证A就恢复了…

【C语言每日一题】猜名次

【C语言每日一题】—— 猜名次&#x1f60e;&#x1f60e;&#x1f60e; &#x1f4a1;前言&#x1f31e;&#xff1a; &#x1f49b;猜名次题目&#x1f49b; &#x1f4aa; 解题思路的分享&#x1f4aa; &#x1f60a;题目源码的分享&#x1f60a; &#x1f449; 本菜鸡…

【MySQL】增删改操作(基础篇)

目录 1、新增操作(Create) 1.1 单行数据 全列插入 1.2 多行数据 全列插入 1.3 单行数据 指定列插入 2、修改操作(Update) 3、删除操作(Delete) 1、新增操作(Create) 如何给一张表新增数据呢&#xff1f; 新增(Create)&#xff0c;在我们数据库中&#xff0c;用 ins…

三行代码让你的git记录保持整洁

前言笔者最近在主导一个项目的架构迁移工作&#xff0c;由于迁移项目的历史包袱较重&#xff0c;人员合作较多&#xff0c;在迁移过程中免不了进行多分支、多次commit的情况&#xff0c;时间一长&#xff0c;git的提交记录便混乱不堪&#xff0c;随便截一个图形化的git提交历史…