Ubuntu下安装Zookeeper集群

news2024/12/23 23:45:39

Zookeeper集群是一个开源的分布式协调服务系统,它由Apache软件基金会维护,旨在为分布式应用提供一致性和可靠性的服务。

在Zookeeper集群中,服务器可以扮演三种角色——领导者(Leader)、跟随者(Follower)和观察者(Observer,部分版本或配置中可能不包含)。领导者负责处理客户端的写请求和集群内部的调度,跟随者则处理读请求并同步领导者的数据,观察者类似于跟随者,但不参与投票过程。

Zookeeper集群通过ZAB(Zookeeper Atomic Broadcast)协议保证数据的一致性。客户端的写请求首先发送给领导者,领导者再将请求广播给所有跟随者,当大多数跟随者确认后,领导者才将请求应用到自己的数据副本上,并通知跟随者更新数据。

跟随者会定期从领导者同步数据,以保持数据的一致性。这种机制确保了即使领导者发生故障,集群也能迅速恢复服务。

Zookeeper被广泛应用于配置管理服务注册与发现分布式锁集群管理命名服务队列管理。

1、准备Ubuntu主机

我用VMware跑了两个Ubuntu系统,来模拟Zookeeper集群的主机和从机。两台虚拟机的主机名分别为demo1、demo2,IP地址分别为192.168.23.130、192.168.23.131。在每台虚拟机上需要分别配置好/etc/hosts文件和/etc/hostname文件,如下图所示:

在准备VMware虚拟机时,我遇到了复制后的Ubuntu虚拟机网卡失效的问题,解决方法见博文:VMware复制Ubuntu虚拟机后网卡失效的问题-CSDN博客

2、安装Zookeeper

下载地址:Apache Download Mirrors

下载pache-zookeeper-3.9.2-bin.tar.gz

解压:tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz -C ~/training/

3、配置Zookeeper集群

1)、配置Zookeeper环境变量:

> vi ~/bashrc, 在最下面添加:

ZOOKEEPER_HOME=/home/worker/training/apache-zookeeper-3.9.2-bin
export ZOOKEEPER_HOME
PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
 

2)、配置conf/zoo.cfg:

分别配置两台虚拟机的zoo.cfg:

dataDir=/home/worker/training/apache-zookeeper-3.9.2-bin/tmp/zookeeper

clientPort=2181

server.1=demo1:2888:3888
server.2=demo2:2888:3888

3)、配置myid:

/home/worker/training/apache-zookeeper-3.9.2-bin

mkdir /tmp/zookeeper

touch /tmp/zookeeper/myid

echo 1 > /tmp/zookeeper/myid

在第一台虚拟机中myid为1,第二台虚拟机中myid为2.

5、启动zookeeper

分别启动两台虚拟机上的Zookeeper:

./bin/zkServer.sh start

6、查看Zookeeper集群状态:

./bin/zkServer.sh status

从下图可见:一台虚拟机的状态时leader,另一台状态为follower。

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

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

相关文章

开放式耳机哪个品牌好?值得选购的开放式蓝牙耳机推荐

2024年,蓝牙耳机市场迎来了开放式耳机的热潮。但其实对于许多消费者来说,如何选择合适的开放式耳机仍然充满疑问:佩戴稳固舒适的开放式耳机应该怎么选择?开放式耳机的蓝牙版本该怎么选择?又有哪些开放式耳机品牌是可靠…

SkyWalking 高可用

生产环境中,后端应用需要支持高吞吐量并且支持高可用来保证服务的稳定,因此需要高可用集群管理。 集群方案 Skywalking集群是将 skywalking oap 作为一个服务注册到nacos上,只要skywalking oap服务没有全部宕机,保证有一个skywalking oap在运行,就可以提供服务。 高可用…

【mmsegmentation】Loss模块(进阶)自定义自己的LOSS

1、定义自己的loss driving\models\losses\shuai_loss.py import torch from torch import nn from mmseg.models import LOSSESLOSSES.register_module() class ShuaiLoss(nn.Module):def __init__(self,loss_weight1.0):super().__init__()self.ce_loss nn.CrossEntropyLo…

躺平成长:微信小程序运营日记第二天

在进行属于生活的开源之后,自己更加感受到自己存在的渺茫,同时更加开始深刻领会,开源的重要性,在开源,开放,创造,再创新的思维模式下,不发布八部金刚功相关的训练视频,自…

详解Java中的Collection单列集合(从底层到用法超详细解析和细节分析)

⭕在 Java 中,集合框架是开发过程中最常用的数据结构之一,其中 Collection 接口是整个集合框架的基础。Collection 是处理单列数据的接口,它定义了一些通用的操作,允许对一组对象进行操作。今天我们将深入介绍 Java 中的单列集合 …

ECharts图表图例4

jave 用eclipse软件 代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <!-- 引入ECharts脚本 --> <script src"js/echarts.js"></script> <title>绘制堆积面积图</title&g…

Unraid的cache使用btrfs或zfs?

Unraid的cache使用btrfs或zfs&#xff1f; 背景&#xff1a;由于在unraid中添加了多个docker和虚拟机&#xff0c;因此会一直访问硬盘。然而&#xff0c;单个硬盘实在难以让人放心。在阵列盘中&#xff0c;可以通过添加校验盘进行数据保护&#xff0c;在cache中无法使用xfs格式…

Leecode热题100-283.移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […

【Python报错已解决】ImportError: No module named ‘module‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

单目操作符、--、++和do-while循环

昨天我们算术操作符的除法和乘法&#xff0c;以及引入while和for循环&#xff0c;今天我们来看新的内容。 借助我们之前写的计算器代码来深入学习一下其他东西。 单目操作符——、--、& 除了昨天说的那些操作符之外&#xff0c;记不记得输入函数中有一个&这么一个符…

分散加载文件 scatter files

目录 一、加载域和执行域二、Image entry points三、映射符号四、链接器预定义符号1、将符号引入到程序中1.1 引入到 C/C1.2 引入到汇编 2、域相关的符号2.1 执行域符号 Image$$2.2 执行域符号 Load$$2.3 加载域符号 Load$$LR$$2.4 节相关的符号2.5 镜像符号2.6 输入节符号 五、…

HarmonyOS鸿蒙 Next 实现协调布局效果

HarmonyOS鸿蒙 Next 实现协调布局效果 ​ 假期愉快! 最近大A 的涨势实在是红的让人晕头转向&#xff0c;不知道各位收益如何&#xff0c;这会是在路上&#xff0c;还是已经到目的地了? 言归正传&#xff0c;最近有些忙&#xff0c;关于鸿蒙的实践系列有些脱节了&#xff0c;…

Electron 是如何工作的

1. 创建electron项目 pnpm init pnpm add -D electron修改配置项 package.json {"name": "electron-menu","version": "1.0.0","description": "","main": "main.js", // eletron入口&quo…

【重学 MySQL】四十七、表的操作技巧——修改、重命名、删除与清空

【重学 MySQL】四十七、表的操作技巧——修改、重命名、删除与清空 修改表添加字段语法示例注意事项 删除字段语法示例 修改字段使用 MODIFY COLUMN语法示例 使用 CHANGE COLUMN语法示例 重命名表语法示例 删除表语法示例 清空表使用 TRUNCATE TABLE使用 DELETE FROM对比 TRUNC…

聊聊晶圆厂中的常见口语(1)

知识星球里的学员问&#xff1a;半导体公司的工程师总爱用一些英语代替中文&#xff0c;比如care,show&#xff0c;用这种简单的单词代替中文&#xff0c;能不能给我们总结工程师常用的英语单词&#xff0c;比较口语化的&#xff01; 为什么晶圆厂会用很多英文口语&#xff1f…

华为---以太网静态路由配置使用下一跳通信正常,而使用出接口无法通信

目录 1. 实验环境 2. 结果测试 3. 分析验证 3.1 以太网静态路由配置使用下一跳跨网段通信抓包分析 3.2 以太网静态路由配置使用出接口跨网段通信抓包分析 3.3 以太网静态路由配置使用出接口无法跨网段通信问题解决办法 1. 实验环境 以太网静态路由配置使用下一跳跨网段通…

番茄成熟度检测系统源码分享

番茄成熟度检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

Opencv第十一章——视频处理

1. 读取并显示摄像头视频 1.1 VideoCapture类 VideoCapture类提供了构造方法VideoCapture(),用于完成摄像头的初始化工作&#xff0c;其语法格式如下&#xff1a; capture cv2.VideoCapture(index) 参数说明&#xff1a; capture:要打开的摄像头视频。 index:摄像头设备索引。…

【区间dp】AT_dp_l 题解

题意 给一个双端队列&#xff0c;双方轮流取数&#xff0c;每一次能且只能从队头或队尾取数&#xff0c;取完数后将这个数从队列中弹出。双方都希望自己取的所有数之和尽量大&#xff0c;且双方都以最优策略行动&#xff0c;假设先手取的所有数之和为 X X X&#xff0c;后手取…

【Git】一文看懂Git

Git 一、简介1. Git 与 SVN 区别1.1 Git 是分布式的&#xff0c;SVN 不是1.1.1 分布式版本控制系统Git1.1.2 集中式版本控制系统SVN 1.2 Git 把内容按元数据方式存储&#xff0c;而 SVN 是按文件1.3 Git 分支和 SVN 的分支不同1.4 Git 没有一个全局的版本号&#xff0c;而 SVN …