如何在Linux系统中搭建Zookeeper集群
一、概述
ZooKeeper是一个开源的且支持分布式部署的应用程序,是Google的Chubby一个开源的实现;它为分布式应用提供了一致性服务支持,包括:配置维护、域名服务、分布式同步、组服务等。
官网:https://zookeeper.apache.org/index.html
二、集群搭建
1、目标
分别在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Zookeeper,搭建Zookeeper集群。
2、准备
准备三台IP地址为192.168.1.100、192.168.1.101和192.168.1.102的虚拟机,视频教程:https://www.bilibili.com/video/BV15m4y1d7ZP
3、步骤
a、下载:https://zookeeper.apache.org/releases.html,这里下载apache-zookeeper-3.8.4-bin.tar.gz
b、连接:通过MobaXterm 远程连接192.168.1.100虚拟机;
c、上传:将apache-zookeeper-3.8.4-bin.tar.gz压缩文件上传至/opt目录;
d、解压:将Zookeeper压缩文件解压至/usr/local目录
[root@localhost ~]# tar -zxvf /opt/apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local
e、删除:删除压缩文件
[root@localhost ~]# rm -f /opt/apache-zookeeper-3.8.4-bin.tar.gz
f、创建目录:
/usr/local/apache-zookeeper-3.8.4-bin根目录下创建data和log文件夹
[root@localhost ~]# mkdir /usr/local/apache-zookeeper-3.8.4-bin/{datas,logs}
g、修改配置:
①、重命名:
[root@localhost ~]# mv /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo.cfg
②、改配置:
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo.cfg <<-'EOF'
# 设置服务器之间,或客户端与服务器之间心跳时间间隔,单位:毫秒
tickTime=2000
# Leader节点允许从节点连接和同步的初始化时间段,以tickTime倍数表示
initLimit=10
# Leader节点和从节点之间同步通信的时间段,以tickTime倍数表示
syncLimit=5
# 设置存储内存快照目录
dataDir=/usr/local/apache-zookeeper-3.8.4-bin/datas
# 设置Zookeeper日志目录
dataLogDir=/usr/local/apache-zookeeper-3.8.4-bin/logs
# 设置用于客户端连接Zookeeper端口
clientPort=2181# server.X:用于配置集群中的每个服务器节点,X 是一个唯一的数字标识,等号右边是该节点的IP地址和两个端口,这些端口分别是用于节点间进行Leader选举的端口(Leader Election)和用于节点间进行数据同步的端口(Leader Sync)。
server.100=192.168.1.100:2888:3888
server.101=192.168.1.101:2888:3888
server.102=192.168.1.102:2888:3888EOF
h、节点拷贝:
[root@localhost ~]# scp -r /usr/local/apache-zookeeper-3.8.4-bin root@192.168.1.101:/usr/local/apache-zookeeper-3.8.4-bin
[root@localhost ~]# scp -r /usr/local/apache-zookeeper-3.8.4-bin root@192.168.1.102:/usr/local/apache-zookeeper-3.8.4-bin
注意:节点拷贝操作只在192.168.1.100节点执行。
i、创建myid:
每个 Zookeeper 节点 dataDir 指定目录中都需要创建一个名为 myid 的文件,其内容为上述配置文件中 server.X 的X值,例如X是100,那么/usr/local/apache-zookeeper-3.8.4-bin/data/myid文件的值为100,为快速设置内容,建议直接执行如下指令:
192.168.1.100节点:
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
100
EOF
192.168.1.101节点:
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
101
EOF
192.168.1.102节点:
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
102
EOF
j、开放端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=2181/tcp --add-port=2888/tcp --add-port=3888/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
注意:每个Zookeeper所在节点都需要通过执行上面命令开放端口。
三、启动节点
1、逐个操作
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop
注意:每个Zookeeper所在节点都需要通过执行上面命令启动节点。
2、一键操作
通过MobaXterm 远程连接192.168.1.100虚拟机,进行如下操作:
a、zkStart.sh
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh <<-'EOF'
#!/bin/bash
echo "zookeeper start 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
EOF
b、zkStop.sh
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh <<-'EOF'
#!/bin/bash
echo "zookeeper stop 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
EOF
c、zkStatus.sh
[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh <<-'EOF'
#!/bin/bash
echo "zookeeper status 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
EOF
d、设置权限
[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh
[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh
e、执行文件
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh
四、访问节点
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkCli.sh -server 192.168.1.100:2181
相关文章:
如何在Linux系统中搭建Zookeeper集群
一、概述 ZooKeeper是一个开源的且支持分布式部署的应用程序,是Google的Chubby一个开源的实现;它为分布式应用提供了一致性服务支持,包括:配置维护、域名服务、分布式同步、组服务等。 官网:https://zookeeper.apach…...

C++:vector的模拟实现
hello,各位小伙伴,本篇文章跟大家一起学习《C:vector的模拟实现》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!&…...

QT系列教程(5) 模态对话框消息传递
模态对话框接受和拒绝消息 我们创建一个模态对话框,调用exec函数后可以根据其返回值进行不同的处理,exec的返回值有两种,Qt的官方文档记录的为 QDialog::Accepted QDialog::RejectedAccepted 表示接受消息, Rejected表示拒绝消息…...

Linux学习笔记(清晰且清爽)
本文首次发布于个人博客 想要获得最佳的阅读体验(无广告且清爽),请访问本篇笔记 Linux安装 关于安装这里就不过多介绍了,安装版本是CentOS 7,详情安装步骤见下述博客在VMware中安装CentOS7(超详细的图文教…...

2.5Bump Mapping 凹凸映射
一、Bump Mapping 介绍 我们想要在屏幕上绘制物体的细节,从尺度上讲,一个物体的细节分为:宏观、中观、微观宏观尺度中其特征会覆盖多个像素,中观尺度只覆盖几个像素,微观尺度的特征就会小于一个像素宏观尺度是由顶点或…...

数字化前沿:Web3如何引领未来技术演进
在当今数字化时代,随着技术的不断发展和创新,Web3作为一种新兴的互联网范式,正逐渐成为数字化前沿的代表。Web3以其去中心化、加密安全的特性,正在引领着未来技术的演进,为全球范围内的科技创新带来了新的可能性和机遇…...

【kubernetes】探索k8s集群的存储卷、pvc和pv
目录 一、emptyDir存储卷 1.1 特点 1.2 用途 1.3部署 二、hostPath存储卷 2.1部署 2.1.1在 node01 节点上创建挂载目录 2.1.2在 node02 节点上创建挂载目录 2.1.3创建 Pod 资源 2.1.4访问测试 2.2 特点 2.3 用途 三、nfs共享存储卷 3.1特点 3.2用途 3.3部署 …...

UI线程和工作线程
引用:windows程序员面试指南 工作线程 只处理逻辑的线程,例如:启动一个线程,用来做一个复杂的计算,计算完成之后,此线程就自动退出,这种线程称为工作线程 UI线程 Windows应用程序一般由窗口…...

RandLA-Net 训练自定义数据集
https://arxiv.org/abs/1911.11236 搭建训练环境 git clone https://github.com/QingyongHu/RandLA-Net.git搭建 python 环境 , 这里我用的 3.9conda create -n randlanet python3.9 source activate randlanet pip install tensorflow2.15.0 -i https://pypi.tuna.tsinghua.e…...
洛谷 B3642:二叉树的遍历 ← 结构体方法 链式前向星方法
【题目来源】https://www.luogu.com.cn/problem/B3642【题目描述】 有一个 n(n≤10^6) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 n),建立一棵二叉树(根结点的编号为 1),如果是叶子结点&…...

飞腾+FPGA多U多串全国产工控主机
飞腾多U多串工控主机基于国产化飞腾高性能8核D2000处理器平台的国产自主可控解决方案,搭载国产化固件,支持UOS、银河麒麟等国产操作系统,满足金融系统安全运算需求,实现从硬件、操作系统到应用的完全国产、自主、可控,是国产金融信…...

uni-app实现页面通信EventChannel
uni-app实现页面通信EventChannel 之前使用了EventBus的方法实现不同页面组件之间的一个通信,在uni-app中,我们也可以使用uni-app API —— uni.navigateTo来实现页面间的通信。注:2.8.9 支持页面间事件通信通道。 1. 向被打开页面传送数据…...
等保系列之——网络安全等级保护测评工作流程及工作内容
#等保测评##网络安全# 一、网络安全等级保护测评过程概述 网络安全等级保护测评工作过程包括四个基本测评活动:测评准备活动、方案编制活动、现场测评活动、报告编制活动。而测评相关方之间的沟通与洽谈应贯穿整个测评过程。每一项活动有一定的工作任务。如下表。…...
自然语言处理中的BERT模型深度剖析
自然语言处理(NLP)是人工智能领域的一个重要分支,它致力于让计算机理解和生成人类语言。近年来,BERT(Bidirectional Encoder Representations from Transformers)模型的出现,极大地推动了NLP领域…...

数据结构:希尔排序
文章目录 前言一、排序的概念及其运用二、常见排序算法的实现 1.插入排序2.希尔排序总结 前言 排序在生活中有许多实际的运用。以下是一些例子: 购物清单:当我们去超市购物时,通常会列出一份购物清单。将购物清单按照需要购买的顺序排序&…...

unicloud 云对象
背景和优势 20年前,restful接口开发开始流行,服务器编写接口,客户端调用接口,传输json。 现在,替代restful的新模式来了。 云对象,服务器编写API,客户端调用API,不再开发传输json…...
【车载开发系列】常用专业术语汇总
【车载开发系列】常用专业词汇汇总 英语全称说明详细HILSHardware In the Loop Simulation车硬件仿真模拟器精密仪器,价格昂贵,机能测试时一定要小心使用。使用简易HILS不能模拟电气故障。要模拟电气故障需要外接故障BoxLSBLeast Significant Bit单位精…...
如何实现Docker容器的自动化升级:不再为手动更新烦恼!
要升级 Docker 容器,你可以按照以下步骤操作,这些步骤涵盖了从拉取最新镜像到重启容器的整个过程。 步骤一:拉取最新的镜像 首先,确保你有最新版本的镜像。例如,如果你要升级一个 Spring Boot 应用的镜像,…...

SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼
概览 在之前 SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App 这篇博文里,我们已经初步介绍过了 TipKit 的基本知识。 现在,让我们来看看如何进一步利用 SwiftUI 对 TipKit 提供的细粒度外观定制技巧,让 Tip 更加“明眸…...

使用C#实现VS窗体应用——画图板
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。🍎个人主页:Meteors.的博客💞当前专栏:小项目✨特色专栏: 知识分享🥭…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...