当前位置: 首页 > 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;无法登录。…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...