单机模拟搭建 Zookeeper 集群

news2024/9/20 19:52:59

1. 准备

官网下载:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

注意:

  • zookeeper 从 3.5 版本以后,命名就发生了改变
  • apache-zookeeper-X.X.X.tar.gz 这样命名的,都是未编译的;如果我们下载的是未编译的包,那么在启动时会报错:找不到或无法加载主类
  • apache-zookeeper-X.X.X-bin.tar.gz 这样命名的,才是已编译的包,我们要下载的是这种已编译的

2. 文件结构

此次搭建的 zookeeper 集群,端口分别为:2181,2182,2183

在自己想要安装的目录中新建 2181,2182,2183 三个文件夹,将刚刚下载的压缩包分别解压在上述的3个目录下

然后在每个文件夹下新建用于存储数据的 data 目录和存储日志数据的 dataLog 目录,如下:
在这里插入图片描述

3. 修改配置文件

进入 config 目录,拷贝 zoo_sample.cfg 文件,将其重命名为 zoo.cfg

修改配置:

  • 2181
# 配置数据存储的目录
dataDir=/home/zookeeper/2181/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2181/dataLog

# 端口
clientPort=2181

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688
  • 2182
# 配置数据存储的目录
dataDir=/home/zookeeper/2182/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2182/dataLog

# 端口
clientPort=2182

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688
  • 2183
# 配置数据存储的目录
dataDir=/home/zookeeper/2183/data

# 配置日志存储的目录
dataLogDir=/home/zookeeper/2183/dataLog

# 端口
clientPort=2183

# 集群配置
server.1=192.168.56.129:2888:3888
server.2=192.168.56.129:2788:3788
server.3=192.168.56.129:2688:3688

如果大家不想关闭防火墙的话,记得要开放集群配置中的6个端口

firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
...

4. 生成 myid 文件

分别进入 2181,2182,2183 中的 data 文件夹

新建名为 myid 的文件

2181 data 文件夹中的 myid 文件的值为 1
2182 data 文件夹中的 myid 文件的值为 2
2183 data 文件夹中的 myid 文件的值为 3

其实只要每个 myid 文件中的值不一样即可

5. 启动

进入放置 2181,2182,2183 的文件夹
分别输入(看自己具体的文件夹叫什么名字)

2181/zookeeper-3.6.3/bin/zkServer.sh start
2182/zookeeper-3.6.3/bin/zkServer.sh start
2183/zookeeper-3.6.3/bin/zkServer.sh start

启动效果并使用 jps 命令查看:

在这里插入图片描述
当启动完上述三个节点,再输入 jps 命令,可以看到有三个 QuorumPeerMain


启动完上述的3个节点后,我们可以查看三个节点中的哪个成为了主节点
输入:

2181/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

2182/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

2183/zookeeper-3.6.3/bin/zkServer.sh status

在这里插入图片描述

Mode 为 leader 的,就意味着被选举为主节点

6. 编写 shell 脚本

当完成上述步骤后,Zookeeeper 集群就已经搭建好了
但是,不知道大家有没有觉得,每一个节点启动都要输入一次命令,关闭也要一个个关闭,略显麻烦

我们可以编写个简单的 shell 脚本来一键启动和关闭集群

进入 /usr/bin 目录,新建 zookeeper.sh 文件
shell 脚本如下:

#!/bin/bash

case $1 in
"start"){
        /home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh start
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh start
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh start
}
;;
"stop"){
        /home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh stop
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh stop
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh stop
}
;;
"status"){
	/home/zookeeper/2181/zookeeper-3.6.3/bin/zkServer.sh status
	/home/zookeeper/2182/zookeeper-3.6.3/bin/zkServer.sh status
        /home/zookeeper/2183/zookeeper-3.6.3/bin/zkServer.sh status
}
;;
esac

然后赋予文件权限

chmod 777 zookeeper.sh

编写好脚本后,以后想一键启动集群,只需进入 /usr/bin/ 目录,输入如下命令:

./zookeeper.sh start

在这里插入图片描述

# 查看状态
./zookeeper.sh status

# 关闭集群
./zookeeper.sh stop

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

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

相关文章

并发编程之JMMvolatile详解

目录 什么是JMM模型 定义 JMM不同于JVM内存区域模型 主内存 工作内存 Java内存模型与硬件内存架构的关系 JMM存在的必要性 数据同步八大原子操作 同步规则分析 并发编程的可见性,原子性与有序性问题 原子性 可见性 有序性 JMM如何解决原子性&…

【单片机】AT24C02存储器(I²C总线)/DS18B20温度传感器(单总线)

目录 一、AT24C02存储器 1、AT24C02存储器介绍 2、存储器简化模型 3、AT24C02存储器原理图 二、IC总线 1、IC总线的介绍 2、IC电路 3、IC时序图 3.1IC开始和结束时序图 3.2IC主机发送和接收时序图 3.3IC主机发送应答/接收应答 4、IC数据帧发送/接收方式 4.1主机向…

数据可视化系列-02各类图表的综合使用介绍及实践-上篇

文章目录3.各类图表的综合使用介绍及实践3.1了解数据功能图1、可视化中的数据2、基于数据的研究3、数据的可视化组件4、可视化图表的作用、制作流程和类型3.2北极星指标展示1、指标类知识回顾:指标类简介、指标类主要场景2、指标类图表:指标看板、指标趋…

C++关联容器(复习题篇)

本篇博客将介绍标准库关联容器,包括: 关联容器的概念和简单的使用关联容器涉及的类型和操作,特别是与顺序容器的差异无序关联容器,特别是与有序关联容器的差异 练习1.1 描述map和vector的不同 vector是顺序容器其中的元素是“顺序…

分布式事务的介绍

本地事务 单服务进程,单数据库资源,同一个连接conn多个事务操作 在JDBC编程中,我们通过java.sql.Connection对象来开启、关闭或者提交事务。代码如下所示: Connection conn ... //获取数据库连接 conn.setAutoCommit(false); //开启事务 t…

educoder数据结构与算法 栈 第2关:实现一个链接存储的栈

本文已收录于专栏 🌲《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》🌲 目录 任务描述 相关知识 编程要求 测试说明 AC_Code 任务描述 本关任务是实现 step2/LnkStack.cpp 中的LS_IsEmpty、LS_Length、LS_Push、LS_Pop和LS_Top五个操作函数…

π122E30兼容Si8622BC-B-IS 双通道数字隔离器

π122E30兼容Si8622BC-B-IS 双通道数字隔离器 ,具有出色的性能特征和可靠性,整体性能优于光耦和基于其他原理的数字隔离器产品。 产品传输通道间彼此独立,可实现多种传输方向的配置,可实现 3.0kVrms 隔离耐压等级和 DC 到 200Mbp…

Day 17-Vue3 技术_其它

1.全局API的转移 Vue 2.x 有许多全局 API 和配置。例如&#xff1a;注册全局组件、注册全局指令等。 //注册全局组件 Vue.component(MyButton, {data: () > ({count: 0}),template: <button click"count">Clicked {{ count }} times.</button> })//注…

acwing-1015 摘花生

项目场景&#xff1a; 线性dp 题源 数字三角形 问题描述 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图)&#xff0c;从西北角进去&#xff0c;东南角出来。 地里每个道路的交叉点上都有种着一株花生苗&#xff0c;上面有若干颗花…

用Typora,PicGo和OSS实现自动上传图片

前言&#xff1a; 以前写博客要发布到好些个平台&#xff0c;我是将图片一张张上传到每个平台&#xff0c;后来发现是真的麻烦&#xff0c;上传图片花的时间太多&#xff0c;极大的降低了我写文章的积极性。 后来改进为使用oss&#xff0c;把博客的图片都上传到oss上面。然后…

JAVA : ArrayList和数组的转换

一、ArrayList转换为数组 ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组&#xff0c;返回数组的运行时类型就是指定数组的运行时类型。 import java.util.ArrayList; import java.util.List; public class Test { public st…

戴尔笔记本电脑重装系统后进不了系统怎么办

​戴尔电脑是一款很棒的电脑品牌&#xff0c;不少小伙伴都在使用这个牌子的电脑。但有不少小伙伴在重装完系统之后却进不去&#xff0c;那么碰到这种情况应该怎么办呢&#xff1f;下面就和小编一起来看看戴尔笔记本电脑重装系统后进不了系统怎么办的吧。 工具/原料&#xff1a…

【设计模式】-创造篇-工厂方法

制造业是一个国家工业经济发展的重要支柱&#xff0c;而工厂则是其根基所在。程序设计中的工厂类往往是对对象构造、实例化、初始化过程的封装&#xff0c;而工厂方法(Factory Method)则可以升华为一种设计模式&#xff0c;它对工厂制造方法进行接口规范化&#xff0c;以允许子…

Vector - VT System - 板卡_VT7001

接上篇我们介绍完了背板VT8006和VT8012&#xff0c;今天我们来介绍下电源模块板卡VT7001&#xff0c;这个板卡是我们在不需要程控电源的时候依然能够实现精细化的电压、电流控制及检查的板卡&#xff0c;并且在脚本开发中无需考虑时延的一个模块。我们使用的大部分设备无论是继…

14---实现文件上传和下载(头像上传功能)

1、建Files表 接下来开始完成文件管理的内容&#xff0c;首先是数据库建Files表 DROP TABLE IF EXISTS file;CREATE TABLE file (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,name varchar(255) DEFAULT NULL COMMENT 文件名称,type varchar(255) DEFAULT NULL COMMENT 文…

Detection of Individual Tree Crowns in Airborne Lidar Data

Abstract 激光扫描提供了一种收集林分信息的好方法。本文介绍了一种在落叶林和混合温带森林中的小足迹光检测和测距&#xff08;激光雷达&#xff09;数据中自动描绘单棵树的方法。在光栅化激光数据中&#xff0c;可能的树顶用局部最大值滤波器检测。之后&#xff0c;结合浇注…

【Bootstrap】基础知识和环境配置

目录 一、Bootstrap基础 1. 概念 2. 特点 3. 组成 3.1 基本结构 3.2 丰富的CSS样式库 3.3 布局组件 3.4 插件 二、bootstrap的环境配置 1. 在页面中引入本地文件 2. 使用CDN加速器 一、Bootstrap基础 1. 概念 Bootstrap是一个基于HTML、CSS和JavaScript语言编写的…

动手学习深度学习-《自动求导》

向量链式求导法则 标量链式法则&#xff1a; 扩展到向量&#xff1a; yyy是关于标量uuu的一个标量&#xff0c;x\bf{x}x是一个向量 yyy是关于向量u\bf{u}u的一个标量&#xff0c;x\bf{x}x是一个向量 y\bf{y}y是关于向量u\bf{u}u的一个向量&#xff0c;x\bf{x}x是一个向量…

Nginx+keepalived 实现高可用,防盗链及动静分离配置详解

一、Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL&#xff08;类似于Redirect&#xff09;&#xff0c;从某种意义上说为了美观或者对搜索引擎友好&#xff0c;提高收录量及排名等。 语法&#xff1a; rewrite <regex> <r…

Oracle11g彻底卸载教程(详细版)

目前项目结束,暂时不需要Oracle了,为清理电脑并便于后续重装,现记录彻底卸载的步骤如下: 1、按下“Windows”+“R”键,在运行窗中,输入compmgmt.msc,进入计算机管理------>服务,停止所有Oracle服务(对于状态为 正在进行 的服务,右键------>停止)。 2、在开始…