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

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-…...

基于深度学习的网络异常检测方法研究

摘要: 本文提出了一种基于深度学习的网络异常检测方法,旨在有效地识别网络中潜在的异常行为。通过利用深度学习算法,结合大规模网络流量数据的训练,我们实现了对复杂网络环境下的异常行为的准确检测与分类。实验结果表明&#xf…...

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如何解决黏性差、停留短、打开率低等痛点?

工具产品除了需要把自己的功能做到极致之外&#xff0c;其实需要借助一些情感手段、增设一些游戏机制、输出高质量内容、搭建社区组建用户关系链等方式&#xff0c;来提高产品的用户黏性&#xff0c;衍生产品的价值链。 工具类产品由于进入门槛低&#xff0c;竞争尤为激烈&…...

使用Java MVC开发高效、可扩展的Web应用

在当今的Web开发领域&#xff0c;高效和可扩展性是我们追求的目标。Java作为一种强大且广泛使用的编程语言&#xff0c;提供了丰富的工具和框架来支持Web应用的开发。其中&#xff0c;MVC模式是一种被广泛采用的架构模式&#xff0c;它能够有效地组织和管理代码&#xff0c;使得…...

wandb安装方法及本地部署教程

文章目录 1 wandb介绍2 wandb安装2.1 注册wandb账号2.2 创建项目并获得密钥2.3 安装wandb并登录 3 wandb本地部署3.1 设置wandb运行模式3.2 云端查看运行数据 4 总结 1 wandb介绍 Wandb&#xff08;Weights & Biases&#xff09;是一个用于跟踪、可视化和协作机器学习实验…...

stable diffusion实践操作-提示词插件安装与使用

本文专门开一节写提示词相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 正文 1、提示词插件安装 1.1、 安装 1.2 加载【应用更改并重载前端】 1.3 界面展示 1.3.-4 使用 里面有个收藏列表&#xff0c;可以收藏以前的所有提示…...

【SpringBoot】详细介绍SpringBoot中的bean

在Spring Boot中&#xff0c;Bean是由Spring容器实例化、管理和维护的对象。Bean是Spring框架的核心概念之一&#xff0c;它代表了应用程序中的组件或对象。 以下是有关Spring Boot中Bean的详细介绍&#xff1a; 1. 定义&#xff1a;Bean是在Spring容器中被实例化、管理和维护…...

【Nuxt实战】在Nuxt3项目中如何按需引入Element-plus

步骤一&#xff1a;安装 Element Plus 和图标库 首先&#xff0c;使用以下命令安装 Element Plus 和它的图标库&#xff1a; npm install element-plus --save npm install element-plus/icons-vue步骤二&#xff1a;安装 Nuxt Element Plus 模块 安装 Nuxt Element Plus 模…...

专业制造一体化ERP系统,专注于制造工厂生产管理信息化,可定制-亿发

制造业是国民经济的支柱产业&#xff0c;对于经济发展和竞争力至关重要。在数字化和智能化趋势的推动下&#xff0c;制造业正处于升级的关键时期。而ERP系统&#xff0c;即企业资源计划系统&#xff0c;能够将企业的各个业务环节整合起来&#xff0c;实现资源的有效管理和信息的…...

Linux工具

一、yum yum可以看作一个客户端&#xff08;应用商店&#xff09;、应用程序&#xff0c;它如何知道去哪里下载软件&#xff1f; yum也是一个指令/程序&#xff0c;可以找到它的安装路径。 在list中可以看到yum能安装的所有软件&#xff0c;通过管道找到想要的&#xff0c;yum …...

Java项目-苍穹外卖-Day07-redis缓存应用-SpringCache/购物车功能

文章目录 前言缓存菜品问题分析和实现思路缓存菜品数据清理缓存数据功能测试 SpringCache介绍入门案例 缓存套餐购物车功能添加购物车需求分析和产品原型测试 查看购物车清空购物车 前言 本章节主要是进行用户端的购物车功能开发 和redis作为mysql缓存的应用以及SpringCache的…...

零知识证明(zk-SNARK)(一)

全称为 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge&#xff0c;简洁非交互式零知识证明&#xff0c;简洁性使得运行该协议时&#xff0c;即便statement非常大&#xff0c;它的proof大小也仅有几百个bytes&#xff0c;并且验证一个proof的时间可以达到毫秒…...

linux中打印数据的行缓冲模式

1. 回车换行符在Window下和在Linux下的区别&#xff1a; 在Window下&#xff1a;回车换行符为\r\n 在Linux下&#xff1a;回车换行符为\n \n为换行符&#xff0c;换行相当于光标跳转到下一行的这个位置 \r为回车符&#xff0c;回车相当于光标跳转到当前行的最左边的位置 所以…...

香橙派OrangePi zero H2+ 驱动移远4G/5G模块

目录 1 安装系统和内核文件&#xff1a; 1.1 下载镜像 1.2 内核头安装 1.2.1 下载内核 1.2.2 将内核头文件导入开发板中 1.2.3 安装内核头 2 安装依赖工具&#xff1a; 2.1 Installing Required Host Utilities 3 驱动步骤&#xff1a; 3.1 下载模块驱动文件…...

自动驾驶——【规划】记忆泊车特殊学习路径拟合

1.Back ground 如上图&#xff0c;SLAM学习路线Start到End路径&#xff0c;其中曲线SDAB为D档位学习路径&#xff0c;曲线BC为R学习路径&#xff0c;曲线AE为前进档D档学习路径。 为了使其使用记忆泊车时&#xff0c;其驾驶员体验感好&#xff0c;需去除R档倒车部分轨迹&#x…...

【跟小嘉学 Rust 编程】十六、无畏并发(Fearless Concurrency)

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...