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

Zookeeper(一):在WSL单机搭建Zookeeper伪集群

目录

  • Zookeeper
    • 1 启动单个Zookeeper实例
      • 1.1 下载Zookeeper安装包并解压
      • 1.2 添加环境变量
      • 1.3 修改默认配置
      • 1.4 新建数据存储目录和日志目录
      • 1.5 启动Zookeeper
      • 1.6 停止Zookeeper
    • 2 搭建Zookeeper集群
      • 2.1 新建集群目录
      • 2.2 配置环境变量
      • 2.3 创建节点目录
      • 2.4 修改配置
      • 2.5 创建节点ID文件
      • 2.6 启动集群
      • 2.7 停止集群

Zookeeper

本文尝试在单机搭建包含有3个节点的Zookeeper集群。
环境:Windows 11 WSL2
Linux发行版本:Ubuntu 22.04.2 LTS

1 启动单个Zookeeper实例

1.1 下载Zookeeper安装包并解压

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz
sudo tar xvf apache-zookeeper-3.8.3-bin.tar.gz -C /usr/local/bin

1.2 添加环境变量

配置环境变量:

vim ~/.bashrc

添加如下内容:

#set Zookeeper env vars
export ZOOKEEPER_HOME=/usr/local/bin/apache-zookeeper-3.8.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

加载新的环境变量:

source ~/.bashrc

1.3 修改默认配置

cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

在配置文件中修改数据存储目录:

dataDir=$ZOOKEEPER_HOME/data

1.4 新建数据存储目录和日志目录

sudo mkdir $ZOOKEEPER_HOME/data
sudo chmod -R 777 data
sudo mkdir $ZOOKEEPER_HOME/logs
sudo chmod -R 777 logs

1.5 启动Zookeeper

zkServer.sh start

查看状态:

zkServer.sh status

启动命令行:

zkCli.sh

1.6 停止Zookeeper

停止Zookeeper

zkServer.sh stop

2 搭建Zookeeper集群

2.1 新建集群目录

cd /usr/local/bin
sudo zookeeper-cluster
chmod -R 777 zookeeper-cluster

2.2 配置环境变量

vim ~/.bashrc
export ZK_CLUSTER_HOME /usr/local/bin/zookeeper-cluster
source ~/.bashrc

2.3 创建节点目录

将Zookeeper安装目录复制3份:

cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-1
cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-2
cp -r apache-zookeeper-3.8.3-bin zookeeper-cluster/zookeeper-3

清理之前单实例产生的数据:

sudo rm -rf zookeeper-cluster/zookeeper-1/data
sudo rm -rf zookeeper-cluster/zookeeper-2/data
sudo rm -rf zookeeper-cluster/zookeeper-3/datasudo mkdir zookeeper-cluster/zookeeper-1/data
sudo mkdir zookeeper-cluster/zookeeper-2/data
sudo mkdir zookeeper-cluster/zookeeper-3/data

如果当前账号没有写权限,需要赋权限:

sudo chmod -R 777 zookeeper-cluster/zookeeper-1
sudo chmod -R 777 zookeeper-cluster/zookeeper-2
sudo chmod -R 777 zookeeper-cluster/zookeeper-3

2.4 修改配置

首先查询本机IP

ip addr

分别修改3个节点的配置

vim zookeeper-cluster/zookeeper-1/conf/zoo.cfg

dataDir=$ZK_CLUSTER_HOME/zookeeper-1/data
clientPort=2181
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883

vim zookeeper-cluster/zookeeper-2/conf/zoo.cfg

dataDir=$ZK_CLUSTER_HOME/zookeeper-2/data
clientPort=2182
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883

vim zookeeper-cluster/zookeeper-3/conf/zoo.cfg

dataDir=$ZK_CLUSTER_HOME/zookeeper-3/data
clientPort=2183
#Cluster
server.1=172.26.143.96:2881:3881
server.2=172.26.143.96:2882:3882
server.3=172.26.143.96:2883:3883

2.5 创建节点ID文件

echo 1 > zookeeper-cluster/zookeeper-1/data/myid
echo 2 > zookeeper-cluster/zookeeper-2/data/myid
echo 3 > zookeeper-cluster/zookeeper-3/data/myid

2.6 启动集群

分别启动三个Zookeeper实例:

$ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh start
$ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh start
$ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh start

查看节点状态:

ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-1/bin/…/conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-2/bin/…/conf/zoo.cfg
Client port found: 2182. Client address: localhost. Client SSL: false.
Mode: leader

ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/local/bin/zookeeper-cluster/zookeeper-3/bin/…/conf/zoo.cfg
Client port found: 2183. Client address: localhost. Client SSL: false.
Mode: follower

2.7 停止集群

$ZK_CLUSTER_HOME/zookeeper-1/bin/zkServer.sh stop
$ZK_CLUSTER_HOME/zookeeper-2/bin/zkServer.sh stop
$ZK_CLUSTER_HOME/zookeeper-3/bin/zkServer.sh stop

相关文章:

Zookeeper(一):在WSL单机搭建Zookeeper伪集群

目录 Zookeeper1 启动单个Zookeeper实例1.1 下载Zookeeper安装包并解压1.2 添加环境变量1.3 修改默认配置1.4 新建数据存储目录和日志目录1.5 启动Zookeeper1.6 停止Zookeeper 2 搭建Zookeeper集群2.1 新建集群目录2.2 配置环境变量2.3 创建节点目录2.4 修改配置2.5 创建节点ID…...

Go语法的特殊之处

上文我们讲了GO模块引入指令Go Mod,本文讲述Go语法的特殊之处 : 单变量 : hello:“hello” Go 语言中新增了一个特殊的运算符:,这个运算符可以使变量在不声明的情况下直接被赋值使用。其使用方法和带值声明变量类似,只是少了var关键字&…...

浏览器v8垃圾回收机制和内存泄漏分析-初级

借鉴:一文搞懂V8引擎的垃圾回收 - 掘金 (juejin.cn) 聊聊V8引擎的垃圾回收 - 掘金 (juejin.cn) 内存泄漏方向: 1、全局变量 未手动清除 2、定时器 未手动清除 3、闭包中使用了匿名函数 未手动清除 4、dom被赋值使用后 未手动清除 其他解决方式 1、…...

hdlbits系列verilog解答(7420 chip)-49

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本次将实现7420逻辑芯片,它内部有2个4输入的与非门电路,外部有8个输入和2个输出管脚,功能框图如下所示: 二、verilog源码 module top_module ( input p1a, p1b, p1c, p1d,output p1y,input p2a, p2b, p2c…...

Sentinel核心类解读:Entry

默认情况下,Sentinel会将controller中的方法作为被保护资源,Sentinel中的资源用Entry来表示。 Sentinel中Entry可以理解为每次进入资源的一个凭证,如果调用SphO.entry()或者SphU.entry()能获取Entry对象,代表获取了凭证&#xff…...

YOLOv8改进 | SAConv可切换空洞卷积(附修改后的C2f+Bottleneck)

论文地址:官方论文地址 代码地址:官方代码地址 一、本文介绍 本文给大家带来的改进机制是可切换的空洞卷积(Switchable Atrous Convolution, SAC)是一种创新的卷积网络机制,专为增强物体检测和分割任务中的特征提取而…...

可以ping通IP但是无法远程连接-‘telnet‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

起因 一开始远程连接IP,报错,怀疑是自己网络原因,但是同事依旧无法连接 怀疑是自己防火墙的原因,查看关闭依旧无法连接 问题 两个地址可以ping通排除防火墙缘故 怀疑端口,测试端口 然 解决方案 winR 输入control…...

使用VC++设计程序:实现常见的三种图像插值算法:最近邻插值,双线性插值,立方卷积插值

图像放大的三种插值算法 获取源工程可访问gitee可在此工程的基础上进行学习。 该工程的其他文章: 01- 一元熵值、二维熵值 02- 图像平移变换,图像缩放、图像裁剪、图像对角线镜像以及图像的旋转 03-邻域平均平滑算法、中值滤波算法、K近邻均值滤波器 04-…...

多级嵌套vue同步调用用法

//需求 要求同步调用initGame2方法 //调用方法 this.initSocket(); //定义方法为同步 async initSocket() { //调用为同步 await this.initGame2(); //定义方法为同步 async initGame2() {const e await w({ url: //定义w方法 const w e.create({ baseURL: http://my_url:8…...

C#,《小白学程序》第八课:列表(List)其二,编制《高铁列车时刻表》与时间DateTime

1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary&g…...

高德地图使用逆地理编码服务

进入高德地图开发者平台申请web服务&#xff0c;并获取web服务生成的key下面是高德地图官网的逆地理编码服务使用说明https://lbs.amap.com/api/webservice/guide/api/georegeo/ getAddressByLocation(latitude, longitude) {const key key; // 高德地图key密钥const url h…...

ArgoCD基本组件

ArgoCD有5个基本组件&#xff0c; $ kubectl get po -n argocd NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 19h argocd-dex-server-767fb49f59-7rxn7 1/1 Running 0…...

技术分享 | 在 IDE 插件开发中接入 JCEF 框架

项目背景 当前的开发环境存在多种不同语言的 IDE&#xff0c;如 JetBrains 全家桶、Eclipse、Android Studio 和 VS Code 等等。由于每个 IDE 各有其特定的语言和平台要求&#xff0c;因此开发 IDE 插件时&#xff0c;需要投入大量资源才能尽可能覆盖大部分工具。同时&#xf…...

ubuntu 使用webrtc_ros 编译linux webrtc库

ubuntu 使用webrtc_ros 编译linux webrtc库 webrtc_ros 使用WebRTC流式传输ROS图像主题 该节点提供了一个WebRTC对等方&#xff0c;可以将其配置为流ROS图像主题并接收发布到ROS图像主题的流。 该节点托管一个提供简单测试页面的Web服务器&#xff0c;并提供可用于创建和配置W…...

网络通信基础概念介绍

网络通信基础概念介绍 局域网LAN 局域网&#xff0c;即 Local Area Network&#xff0c;简称LAN。 局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的。 局域网是指在一个相对较小的…...

quickapp_快应用_全局数据

全局数据 [1]本地数据存储[2] 数据缓存问题 有时在接口请求的某个数据需要在多个页面使用&#xff0c;此时有2个方法 [1] 将数据存储在本地—> 等价于浏览器的localStorage[2] 将数据存储在数据缓存中 -> 等价于vue中的vuex [1]本地数据存储 官方文档&#xff1a;官方…...

Unity接入Protobuf介绍

Protobuf介绍 Protobuf&#xff08;Protocol Buffers&#xff0c;简称Proto&#xff09;是一种轻量级和高效率的数据序列化格式&#xff0c;由Google公司开发。与XML和JSON等文本格式不同&#xff0c;Protobuf是一种二进制格式&#xff0c;它具有更小的体积和更快的速度。在大…...

【anaconda】numpy.dot 向量点乘小技巧

假设向量A[1,1], 向量B[2,3]。如果想知道他们的内积就可以输入如下代码: 当然&#xff0c;如果是两个列向量相乘&#xff0c;肯定是不对的 但是如果没有维度也一样可以求得内积&#xff0c;而且结果不会套在列表里...

YOLOv5小目标检测层

目录 一、原理 二、yaml配置文件 一、原理 小目标检测层,就是增加一个检测头,增加一层锚框,用来检测输入图像中像素较小的目标 二、yaml配置文件 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 3 # number of classes depth_multiple: 0.33 # model…...

mysql 更改密码

由于两台设备的mysql数据库的密码不一样&#xff0c;开发时每次连接数据库都需要更改配置文件&#xff0c;所以想修改一下mysql数据库的密码。 mysql 修改密码千万不要直接修改&#xff0c;直接修改的话会出现两种情况&#xff1a; 1&#xff0c;修改成功&#xff0c;无法登录。…...

终极教程:3步配置PotPlayer字幕翻译插件实现免费实时翻译

终极教程&#xff1a;3步配置PotPlayer字幕翻译插件实现免费实时翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu PotPlayer_Subtit…...

PSCAD故障分析实战:如何从360次仿真中快速定位最大故障电流?

PSCAD故障扫描工程实践&#xff1a;360次仿真中的关键数据挖掘术 电力系统暂态分析工程师常面临一个经典难题&#xff1a;当数百次故障仿真数据堆在面前时&#xff0c;如何快速锁定真正威胁设备安全的那组"致命参数"&#xff1f;去年某换流站改造项目中&#xff0c;我…...

信号完整性(SI)与电源完整性(PI)设计实战:从理论到解决方案

1. 信号完整性与电源完整性基础概念 刚入行那会儿&#xff0c;每次听到"信号完整性"和"电源完整性"这两个词就头大。直到有次调试一块高速板卡&#xff0c;信号波形乱得像心电图&#xff0c;我才真正明白它们的重要性。简单来说&#xff0c;**信号完整性(S…...

多模态增强不是“加噪声”!揭秘ViT-CLIP融合场景下4种被顶会论文验证的结构感知增强范式

第一章&#xff1a;多模态大模型数据增强策略 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型的数据增强已超越传统单模态范式&#xff0c;需协同处理图像、文本、音频及时空信号等异构输入。关键在于保持语义一致性与跨模态对齐性&#xff0c;而非孤立地扰动各通…...

ADS2011实战:功率放大器输入输出匹配的Smith圆图优化技巧

1. 从零理解Smith圆图匹配的核心逻辑 第一次接触射频功率放大器设计时&#xff0c;看到Smith圆图上那些密密麻麻的圆圈和曲线&#xff0c;我和大多数初学者一样头皮发麻。直到在ADS2011里亲手拖拽了几次匹配元件&#xff0c;才发现这个看似复杂的工具其实比数学公式直观多了。这…...

AI教材写作新利器!低查重AI写教材,快速生成高质量教材!

AI教材编写工具介绍 在撰写教材的过程中&#xff0c;选择合适的工具常常让人感到烦恼&#xff0c;仿佛置身于一场“纠结大会”。使用普通的办公软件&#xff0c;总是觉得功能太过局限&#xff0c;框架的搭建和格式的调整都得靠手动来完成&#xff1b;而如果尝试更专业的AI教材…...

小马智行世界模型进化史,PonyWorld方案解析......

点击下方卡片&#xff0c;关注“自动驾驶之心”公众号戳我-> 领取自动驾驶近30个方向学习路线编辑 | 自动驾驶之心>>自动驾驶前沿信息获取→自动驾驶之心知识星球自从18年世界模型开始进入大众视野以来&#xff0c;已经逐渐烟花成“学习环境规律 — 推演未来 — 再优化…...

告别嗡嗡声:用双三相电机+DTC,手把手教你打造静音高效的工业风扇控制系统

工业风扇静音革命&#xff1a;双三相电机DTC实战指南 站在工厂车间里&#xff0c;耳边持续不断的嗡嗡声早已成为许多工程师的"背景音乐"。工业风扇、泵机等设备的噪音不仅影响工作环境&#xff0c;更是设备效率低下和潜在故障的信号。作为一名经历过数十个工厂改造项…...

CUDA 11.0+环境下的neural_renderer_pytorch编译实战:从源码到避坑指南

1. 环境准备与源码获取 在RTX 3090这类新显卡上编译neural_renderer_pytorch时&#xff0c;最头疼的就是CUDA版本和显卡算力的匹配问题。我最近在三个不同配置的服务器上都部署过这个库&#xff0c;每次都会遇到些新状况。先说说最基本的准备工作&#xff1a; 硬件环境确认特别…...

VSCode + 仓颉语言实战:一个统计正整数数字频次的小工具开发全记录

VSCode 仓颉语言实战&#xff1a;一个统计正整数数字频次的小工具开发全记录 最近在技术社区看到不少开发者对新兴编程语言仓颉&#xff08;Cangjie&#xff09;产生兴趣&#xff0c;但苦于缺乏实践案例。恰好有位粉丝提出想用仓颉语言实现一个统计正整数中各数字出现频次的小…...