ZooKeeper集群环境搭建
🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇
个人主页:beixi@
本文章收录于专栏(点击传送):【大数据学习】
💓💓持续更新中,感谢各位前辈朋友们支持学习~💓💓
文章目录
- 1.ZooKeeper集群环境介绍
- 2.搭建环境准备
- 3.搭建步骤
1.ZooKeeper集群环境介绍
ZooKeeper集群由多个服务器节点组成,其中包括一个Leader节点和多个Follower节点。Leader节点负责处理所有客户端请求,并将数据同步到Follower节点。当Leader节点出现故障时,Follower节点会通过选举机制选举出新的Leader节点。
ZooKeeper集群的主要特点包括:
高性能:ZooKeeper采用基于内存的数据结构和高效的通信协议,具有很高的性能和低延迟。
可靠性:ZooKeeper通过数据复制和选举机制来实现容错能力,即使部分节点出现故障,集群仍然可用。
顺序一致性:ZooKeeper保证了客户端对数据的读写操作是按照其发送顺序被执行的。
数据持久化:ZooKeeper可以将数据持久化到磁盘,即使集群重启也能恢复数据。
2.搭建环境准备
本次用到的环境有:
JDK1.8.0_144
Zookeeper3.4.6
Oracle Linux 7.4
3.搭建步骤
1.解压Zookeeper压缩文件至/opt目录。
tar -zxvf experiment/file/zookeeper-3.4.6.tar.gz -C /opt

2.修改解压后文件夹的名字为zookeeper。
mv /opt/zookeeper-3.4.6 /opt/zookeeper
ll /opt/

3.复制Zookeeper配置文件zoo_sample.cfg名为/zoo.cfg
cp -r /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

4.编辑文件zoo.cfg
vim /opt/zookeeper/conf/zoo.cfg

5.按键:set nu回车设置行号,部分截图如下

6.按键12gg,光标定位到12行,部分截图如下

7.按键 i ,更改代码如下:
dataDir=/root/zookeeper/zkdata
dataLogDir=/root/zookeeper/zkdatalog
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=master:2888:3888

8.按键Esc,按键”:wq!”保存退出。
9.建立Zookeeper数据文件夹zkdata和日志文件夹zkdatalog。
mkdir -p /root/zookeeper/zkdata
mkdir -p /root/zookeeper/zkdatalog

10.赋予文件夹zkdata和zkdatalog可读写权限。
chmod 700 /root/zookeeper/zkdata
chmod 700 /root/zookeeper/zkdatalog

11.查看文件夹zkdata和zkdatalog可读写权限。
ll /root/zookeeper

12.编辑.bashrc文件,配置Zookeeper环境变量。
vim ~/.bashrc

13.按键Shift+g键定位到最后一行,按键 i 切换到输入模式下,添加如下代码
export ZOOKEEPER_HOME=/opt/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin

14.按键Esc,按键”:wq!”保存退出。
15.刷新配置文件,使新加Zookeeper环境变量生效。
source ~/.bashrc

16.拷贝master主机“.bashrc”文件到slave1、slave2从机“~”下。
scp ~/.bashrc slave1:~/
scp ~/.bashrc slave2:~/

17.拷贝“/root/zookeeper”目录下zkdata和zkdatalog文件夹到slave1、slave2从机对应位置。
scp -r /root/zookeeper slave1:/root/
scp -r /root/zookeeper slave2:/root/


18.拷贝配置好的zookeeper文件夹到slave1、slave2从机“/opt”下。
scp -r /opt/zookeeper slave1:/opt
scp -r /opt/zookeeper slave2:/opt


19.在当前主节点master机上,将字符串“3”写入文件myid。
echo "3" > /root/zookeeper/zkdata/myid

cat /root/zookeeper/zkdata/myid

20.切换至“从节点1”机器,双击桌面“Xfce终端”图标打开命令窗口,将“1”写入myid文件。
echo "1" > /root/zookeeper/zkdata/myid

cat /root/zookeeper/zkdata/myid

21.在slave1机上,刷新配置文件,使新加Zookeeper环境变量生效。
source ~/.bashrc

22.切换至“从节点2”机器,双击桌面“Xfce终端”图标打开命令窗口,将“2”写入myid文件。
echo "2" > /root/zookeeper/zkdata/myid

cat /root/zookeeper/zkdata/myid

23.在slave2机上,刷新配置文件,使新加Zookeeper环境变量生效。
source ~/.bashrc

24.切换至“主节点”,双击桌面“Xfce终端”图标打开命令窗口,启动Zookeeper。
zkServer.sh start

25.切换至“从节点1”,双击桌面“Xfce终端”图标打开命令窗口,启动Zookeeper。
zkServer.sh start

26.切换至“从节点2”,双击桌面“Xfce终端”图标打开命令窗口,启动Zookeeper。
zkServer.sh start

27.切换至“主节点”,通过命令窗口,查看Zookeeper状态和守护进程。
zkServer.sh status
jps

28.切换至“从节点1”,通过命令窗口,查看Zookeeper状态和守护进程。
zkServer.sh status
jps

29.切换至“从节点2”,通过命令窗口,查看Zookeeper状态和守护进程。
zkServer.sh status
jps

30.切换至“主节点”,双击桌面“Xfce终端”图标打开命令窗口,停止Zookeeper。
zkServer.sh stop

31.切换至“从节点1”,双击桌面“Xfce终端”图标打开命令窗口,停止Zookeeper。
zkServer.sh stop

32.切换至“从节点2”,双击桌面“Xfce终端”图标打开命令窗口,停止Zookeeper。
zkServer.sh stop

所有配置完成,如果本篇文章对你有帮助,记得点赞关注+收藏哦~
相关文章:
ZooKeeper集群环境搭建
🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi 本文章收录于专栏(点击传送):【大数据学习】 💓💓持续更新中,感谢各位前辈朋友们支持…...
【跟小嘉学 Rust 编程】二十、进阶扩展
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...
pytorch学习过程中一些基础语法
1、tensor.view()函数,通俗理解就是reshape,#参数这里的-1需要注意,可以根据原张量size自行计算 data1torch.randn((4,2)) data2data1.view(2,4) data3data2.view(-1,8)2、tensor.max()函数,在分类问题中,通常需要使用…...
判断聚类 n_clusters
目录 基本原理 代码实现: 肘部法则(Elbow Method): 轮廓系数(Silhouette Coefficient) Gap Statistic(间隙统计量): Calinski-Harabasz Index(Calinski-…...
基于深度学习的网络异常检测方法研究
摘要: 本文提出了一种基于深度学习的网络异常检测方法,旨在有效地识别网络中潜在的异常行为。通过利用深度学习算法,结合大规模网络流量数据的训练,我们实现了对复杂网络环境下的异常行为的准确检测与分类。实验结果表明…...
SSM 基于注解的整合实现
一、pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelV…...
工具类APP如何解决黏性差、停留短、打开率低等痛点?
工具产品除了需要把自己的功能做到极致之外,其实需要借助一些情感手段、增设一些游戏机制、输出高质量内容、搭建社区组建用户关系链等方式,来提高产品的用户黏性,衍生产品的价值链。 工具类产品由于进入门槛低,竞争尤为激烈&…...
使用Java MVC开发高效、可扩展的Web应用
在当今的Web开发领域,高效和可扩展性是我们追求的目标。Java作为一种强大且广泛使用的编程语言,提供了丰富的工具和框架来支持Web应用的开发。其中,MVC模式是一种被广泛采用的架构模式,它能够有效地组织和管理代码,使得…...
wandb安装方法及本地部署教程
文章目录 1 wandb介绍2 wandb安装2.1 注册wandb账号2.2 创建项目并获得密钥2.3 安装wandb并登录 3 wandb本地部署3.1 设置wandb运行模式3.2 云端查看运行数据 4 总结 1 wandb介绍 Wandb(Weights & Biases)是一个用于跟踪、可视化和协作机器学习实验…...
stable diffusion实践操作-提示词插件安装与使用
本文专门开一节写提示词相关的内容,在看之前,可以同步关注: stable diffusion实践操作 正文 1、提示词插件安装 1.1、 安装 1.2 加载【应用更改并重载前端】 1.3 界面展示 1.3.-4 使用 里面有个收藏列表,可以收藏以前的所有提示…...
【SpringBoot】详细介绍SpringBoot中的bean
在Spring Boot中,Bean是由Spring容器实例化、管理和维护的对象。Bean是Spring框架的核心概念之一,它代表了应用程序中的组件或对象。 以下是有关Spring Boot中Bean的详细介绍: 1. 定义:Bean是在Spring容器中被实例化、管理和维护…...
【Nuxt实战】在Nuxt3项目中如何按需引入Element-plus
步骤一:安装 Element Plus 和图标库 首先,使用以下命令安装 Element Plus 和它的图标库: npm install element-plus --save npm install element-plus/icons-vue步骤二:安装 Nuxt Element Plus 模块 安装 Nuxt Element Plus 模…...
专业制造一体化ERP系统,专注于制造工厂生产管理信息化,可定制-亿发
制造业是国民经济的支柱产业,对于经济发展和竞争力至关重要。在数字化和智能化趋势的推动下,制造业正处于升级的关键时期。而ERP系统,即企业资源计划系统,能够将企业的各个业务环节整合起来,实现资源的有效管理和信息的…...
Linux工具
一、yum yum可以看作一个客户端(应用商店)、应用程序,它如何知道去哪里下载软件? yum也是一个指令/程序,可以找到它的安装路径。 在list中可以看到yum能安装的所有软件,通过管道找到想要的,yum …...
Java项目-苍穹外卖-Day07-redis缓存应用-SpringCache/购物车功能
文章目录 前言缓存菜品问题分析和实现思路缓存菜品数据清理缓存数据功能测试 SpringCache介绍入门案例 缓存套餐购物车功能添加购物车需求分析和产品原型测试 查看购物车清空购物车 前言 本章节主要是进行用户端的购物车功能开发 和redis作为mysql缓存的应用以及SpringCache的…...
零知识证明(zk-SNARK)(一)
全称为 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,简洁非交互式零知识证明,简洁性使得运行该协议时,即便statement非常大,它的proof大小也仅有几百个bytes,并且验证一个proof的时间可以达到毫秒…...
linux中打印数据的行缓冲模式
1. 回车换行符在Window下和在Linux下的区别: 在Window下:回车换行符为\r\n 在Linux下:回车换行符为\n \n为换行符,换行相当于光标跳转到下一行的这个位置 \r为回车符,回车相当于光标跳转到当前行的最左边的位置 所以…...
香橙派OrangePi zero H2+ 驱动移远4G/5G模块
目录 1 安装系统和内核文件: 1.1 下载镜像 1.2 内核头安装 1.2.1 下载内核 1.2.2 将内核头文件导入开发板中 1.2.3 安装内核头 2 安装依赖工具: 2.1 Installing Required Host Utilities 3 驱动步骤: 3.1 下载模块驱动文件…...
自动驾驶——【规划】记忆泊车特殊学习路径拟合
1.Back ground 如上图,SLAM学习路线Start到End路径,其中曲线SDAB为D档位学习路径,曲线BC为R学习路径,曲线AE为前进档D档学习路径。 为了使其使用记忆泊车时,其驾驶员体验感好,需去除R档倒车部分轨迹&#x…...
【跟小嘉学 Rust 编程】十六、无畏并发(Fearless Concurrency)
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

