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

在这里插入图片描述

所有配置完成,如果本篇文章对你有帮助,记得点赞关注+收藏哦~

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

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

相关文章

端到端自动驾驶综述

End-to-end Autonomous Driving: Challenges and Frontiers 文章脉路 Introduction 从经典的模块化的方法到端到端方法的一个对比, 讲了各自的优缺点, 模块化的好处是各个模块都有自己明确的优化的目标, 可解释性较强, 且容易debug, 缺点是各个模块优化的目标并不是最终的驾…

开始MySQL之路——MySQL的DataGrip图形化界面

下载DataGrip 下载地址:Download DataGrip: Cross-Platform IDE for Databases & SQL 安装DataGrip 准备好一个文件夹,不要中文和空格 C:\Develop\DataGrip 激活DataGrip 激活码: VPQ9LWBJ0Z-eyJsaWNlbnNlSWQiOiJWUFE5TFdCSjBaIiwibGl…

DockerCompose介绍与使用

DockerCompose介绍与使用 1、DockerCompose介绍 DockerCompose用于定义和运行多容器 Docker 应用程序的工具。 通过 Compose可以使用 YAML 文件来配置应用程序需要的所有服务。一个使用Docker容器的应用,通常由多个容器组成,使用Docker Compose不再需要…

vue naive ui 按钮绑定按键

使用vue (naive ui) 绑定Enter 按键 知识点: 按键绑定Button全局挂载使得message,notification, dialog, loadingBar 等NaiveUI 生效UMD方式使用vue 与 naive ui将vue默认的 分隔符大括号 替换 为 [[ ]] <!DOCTYPE html> <html lang"en"> <head>…

LeetCode-452-用最少数量的箭引爆气球

题目描述&#xff1a; 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出…

Myabtis学习记录

mapper.xml常用标签 foreach标签 MyBatis中mapper.xml中foreach的使用_mapper.xml foreach_Willing卡卡的博客-CSDN博客 if标签 Mybatis的mapper.xml中if标签test判断的用法_if标签的test_大唐冠军侯的博客-CSDN博客

一文讲通物联网嵌入式

最近有很多同学问我&#xff0c;物联网近几年一直是科技的热点&#xff0c;嵌入式和物联网有什么关系呢&#xff1f;我在这里统一给大家讲解一下。 嵌入式是应用于物联网产品方向的一种嵌入式操作系统。类似于Android系统是谷歌开发的移动操作系统&#xff0c;嵌入式实际上也是…

docker 学习-- 04 实践搭建 1(宝塔)

docker 学习-- 04 实践 1&#xff08;宝塔&#xff09; docker 学习-- 01 基础知识 docker 学习-- 02 常用命令 docker 学习-- 03 环境安装 docker 学习-- 04 实践 1&#xff08;宝塔&#xff09; docker 学习-- 04 实践 2 &#xff08;lnpmr环境&#xff09; 通过上面的学…

opencv-答题卡识别判卷

#导入工具包 import numpy as np import argparse import imutils import cv2# 设置参数 ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True,help="path to the input image") args = vars(ap.parse_args())# 正确…

RabbitMQ工作模式-路由模式

官方文档参考&#xff1a;https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才…

妈妈的爱依然深沉

村里的孩子为了买化肥&#xff0c;跟城里官老爷们借了好多钱。 那几年庄稼转手很快&#xff0c;不是用来吃的&#xff0c;因此借钱成本很高&#xff0c;大概LPR加100bp。 后来村里孩子终于发现庄稼终究只能用来吃&#xff0c;不再热衷买卖化肥。可是官老爷们的金融生意还要继续…

模块化与组件化:开发中的双剑合璧

引言&#xff1a;模块化与组件化的重要性 在现代软件开发中&#xff0c;随着项目规模的增长和技术的复杂性增加&#xff0c;如何有效地组织和管理代码变得越来越重要。模块化与组件化作为两种主要的代码组织方法&#xff0c;为开发者提供了有效的工具&#xff0c;帮助他们创建…

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶&#xff0c;流水前波让后波。”改革开放40年来&#xff0c;我们以敢闯敢干的勇气和自我革新的担当&#xff0c;闯出了一条新路、好路&#xff0c;实现了从“赶上时代”到“引领时代”的伟大跨越。今天&#xff0c;我们要不忘初心、牢记…

MyBatisPlus实现多租户功能

前言&#xff1a;多租户是一种软件架构技术&#xff0c;在多用户的环境下&#xff0c;共有同一套系统&#xff0c;并且要注意数据之间的隔离性。 一、SaaS多租户简介 1.1、SaaS多租户 SaaS&#xff0c;是Software-as-a-Service的缩写名称&#xff0c;意思为软件即服务&#x…

手工测试与自动化测试各自的优势和局限性是什么?如何合理地配合使用?

对测试从业者而言&#xff0c;手工测试和自动化测试是伴随测试职业一生的两个名词。今天&#xff0c;我们就来聊聊两者各自的优势和局限性&#xff0c;以及如何合理地配合使用。 手工测试和自动化测试的定义 手工测试&#xff08;Manual Testing&#xff09;是一种软件测试方法…

【电子学会真题】青少年软件编程(C语言)等级考试试卷(一级) 2021年9月

试卷下载 pdf 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255543 word 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255558 1&#xff0e;计算乘积 一行两个整数a、b&#xff0c;以空格分隔。&#xff08;0&#xff1…

CotEditor for mac 4.0.1 中文版(开源文本编辑器)

coteditorformac是一款简单实用的基于Cocoa的macOS纯文本编辑器&#xff0c;coteditormac版本可以用来编辑网页、结构化文本、程序源代码等文本文件&#xff0c;使用起来非常方便。 CotEditor for Mac具有正则表达式搜索和替换、语法高亮、编码等实用功能&#xff0c;而CotEdi…

qt信号与槽

输入账户密码成功则跳转界面 widget.cpp #include "widget.h" //自己的头文件Widget::Widget(QWidget *parent) //构造函数的定义: QWidget(parent) …

WordPress 网站使用 CDN 后获取访客真实 IP

WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR&#xff0c;这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。 在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADD…

django自动创建model数据

目前使用的环境&#xff1a;django4.2.3&#xff0c;python3.10 django通过一些第三方库&#xff0c;可以轻易的自动生成一系列的后台数据。 首先先创建一个数据库&#xff1a; 然后&#xff0c;在setting.py中就可以指定我们新创建的数据库了。 DATABASES {default: {ENGI…