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.rhkb.cn/news/115511.html

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

相关文章

Jetpack Compose 自定义 好看的TabRow Indicator

背景 Jetpack Compose 提供了强大的 Material Design 组件,其中 TabRow 组件可以用于实现 Material Design 规范的选项卡界面。但是默认的 TabRow 样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式。 Jetpack Compose 中使用 TabRow 简单使用 TabRow 一般可以…

新手练习python+selenium自动化测试实战项目【还有其他项目】

说明:本项目采用流程控制思想,未引用unittest&pytest等单元测试框架 【项目都放在最下面小卡片了,有需要可以自取】 一.项目介绍 目的 测试某官方网站登录功能模块可以正常使用 用例 1.输入格式正确的用户名和正确的密码,验…

Stable Diffusion 提示词技巧

文章目录 背景介绍如何写好提示词提示词的语法正向提示词负向提示词 随着AI技术的不断发展,越来越多的新算法涌现出来,例如Stable Diffusion、Midjourney、Dall-E等。相较于传统算法如GAN和VAE,这些新算法在生成高分辨率、高质量的图片方面表…

Gazebo仿真环境下的强化学习实现

Gazebo仿真环境下的强化学习实现 主体源码参照《Goal-Driven Autonomous Exploration Through Deep Reinforcement Learning》 文章目录 Gazebo仿真环境下的强化学习实现1. 源码拉取2. 强化学习实现2.1 环境2.2 动作空间2.3 状态空间2.4 奖励空间2.5 TD3训练 3. 总结 1. 源码…

HTTP协议详解:互联网通信背后的规则与秘密

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTP协议的基本概念 二、HTTP协议的主要特…

web题型

本文在别人的基础上对于一些地方做了一点补充 0X01 命令执行 漏洞原理 没有对用户输入的内容进行一定过滤直接传给shell_exec、system一类函数执行 看一个具体例子 cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1;cmd2:无论cmd1是否执行成功,cm…

SpringBoot项目(jar)部署,启动脚本

需求 SpringBoot项目(jar)部署,需要先关闭原来启动的项目,再启动新的项目。直接输入命令,费时费力,还容易出错。所以,使用脚本启动。 脚本 脚本名:start.sh 此脚本需要放置在jar包…

【算法】递归的概念、基本思想

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

JavaScript Web APIs-01学习

复习&#xff1a; splice() 方法用于添加或删除数组中的元素。 **注意&#xff1a;**这种方法会改变原始数组。 删除数组&#xff1a; splice(起始位置&#xff0c; 删除的个数) 比如&#xff1a;1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…

ASUS华硕VivoBook15笔记本V5200EA_X515EA原装出厂Win11预装OEM系统

华硕11代酷睿笔记本电脑VivoBook_ASUSLaptop X515EA_V5200EA原厂Windows11系统 自带显卡、声卡、网卡、蓝牙等所有驱动、出厂主题壁纸、Office办公软件、华硕电脑管家MyASUS、迈克菲等预装程序 链接&#xff1a;https://pan.baidu.com/s/1yAEdA7aiuHK4CTdGLlSOKw?pwdo45a …

Azure - AzCopy学习

使用 AzCopy 将本地数据迁移到云存储空间 azcopy login 创建存储账号 ./azcopy login --tenant-id 40242385-c249-4746-95dc-4a0b64d49dc5这里的—tenant-id 在下面的地方查看&#xff1a;目录 ID&#xff1b;需要拥有Storage Blob Data Owner 的权限账号下可能会有很多目录&am…

编译工具:CMake(六) | 使用外部共享库和头文件

编译工具&#xff1a;CMake&#xff08;六&#xff09; | 使用外部共享库和头文件 步骤引入头文件搜索路径为 target 添加共享库 步骤 在/Compilation_tool/cmake 目录建立 t4 目录 建立src目录&#xff0c;编写源文件main.c&#xff0c;内容如下&#xff1a; #include <…

RabbitMQ入门

1、RabbitMQ概念简介 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;用来通过普通协议在完全不同的应用之间共享数据&#xff0c;RabbitMQ是使用Erlang语言来编写的&#xff0c;并且RabbitMQ是基于AMQP协议的。 AMQP协议模型 AMQP全称&#xff1a;Advanced Message Q…

浅探Android 逆向前景趋势~

前段时间&#xff0c;我和朋友偶然间谈起安卓逆向&#xff0c;他问我安卓逆向具体是什么&#xff0c;能给我们带来什么实质性的东西&#xff0c;我也和朋友大概的说了一下&#xff0c;今天在这里拿出来和大家讨论讨论&#xff0c;也希望帮助大家来了解安卓逆向。 谈起安卓逆向…

Annual Inspection

机动车年检流程【交警12123】APP 到【检查地方】门口墙上贴着 然后上缴钥匙&#xff0c;等待&#xff0c;本次等待不到半小时搞定&#xff0c;速度很满意&#xff0c; 发现检测人员把你的里程数纠正了。 给你的行驶证&#xff0c;打印这些字样&#xff1a;检验有效期至XXXX 再给…

WebGPU助力客户端Crypto/ZK

1. 引言 前序博客&#xff1a; CUDA入门WebGPUZKP&#xff1a;客户端证明WebGPU入门 正如Personae Labs团队2022年11月博客 Efficient ECDSA & the case for client-side proving 中所指出&#xff1a; 仅适用于高端笔记本电脑的5分钟证明生成时长&#xff0c;远不是可行…

Leetcode: 1. 两数之和 【题解超详细】

前言 有人夜里挑灯看花&#xff0c;有人相爱&#xff0c;有人夜里开车看海&#xff0c;有人leetcode第一题都做不出来。 希望下面的题解可以帮助你们开始 你们的 leetcode 刷题 的 天降之路 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中…

【ES6】Promise的入门介绍

Promise 是 JavaScript 中的一个对象&#xff0c;用于处理异步操作。Promise 对象代表一个最终可能完成&#xff08;并得到结果&#xff09;或失败&#xff08;并被拒绝&#xff09;的操作&#xff0c;以及其结果的值。 一个 Promise 有三种状态&#xff1a; Pending&#xf…

基于costas环的载波同步系统matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................................ I_Dataroun…

Spring-5.0.x源码下载及本地环境搭建

一、Spring源码下载 从github上下载Spring的源代码 下载地址&#xff1a;https://github.com/spring-projects/spring-framework 访问地址之后&#xff0c;打开Spring的代码页面找到你想下载的版本&#xff0c;如5.0.x&#xff0c;如下图所示&#xff1a; 下载方式一&#x…