ZooKeeper集群环境部署
1. ZooKeeper安装部署
1.1 系统要求
1.1.1 支持的平台
ZooKeeper 由多个组件组成。一些组件得到广泛支持,而另一些组件仅在较小的一组平台上得到支持。
-
客户端是 Java 客户端库,由应用程序用于连接到 ZooKeeper 集群。
-
服务器是在 ZooKeeper 集群节点上运行的 Java 服务器。
-
本机客户端是用 C 实现的客户端,类似于 Java 客户端,由应用程序用于连接到 ZooKeeper 集群。
-
Contrib 指多个可选的附加组件。
下表描述了在不同操作系统平台上运行每个组件的承诺支持级别。
1.1.2 支持矩阵
操作系统 | 客户端 | 服务器 | 本机客户端 | Contrib |
---|---|---|---|---|
GNU/Linux | 开发和生产 | 开发和生产 | 开发和生产 | 开发和生产 |
Solaris | 开发和生产 | 开发和生产 | 不支持 | 不支持 |
FreeBSD | 开发和生产 | 开发和生产 | 不支持 | 不支持 |
Windows | 开发和生产 | 开发和生产 | 不支持 | 不支持 |
Mac OS X | 仅限开发 | 仅限开发 | 不支持 | 不支持 |
-
对于矩阵中未明确提及为受支持的任何操作系统,组件可能可以工作,也可能无法工作。ZooKeeper 社区将修复针对其他平台报告的明显错误,但不会提供全面支持。
1.1.3 必需的软件
属性 | 描述或推荐配置 |
---|---|
运行环境 | Java 1.8 或更高版本(支持 JDK 8 LTS、JDK 11 LTS、JDK 12) |
部署方式 | 作为 ZooKeeper 服务器的集群运行 |
最小推荐集群大小 | 三个 ZooKeeper 服务器 |
部署建议 | 建议在不同的机器上运行不同的 ZooKeeper 服务器 |
Yahoo! 部署示例 | 专用的 RHEL 机箱,配备以下配置: |
处理器 | 双核处理器 |
内存 | 2GB RAM |
存储 | 80GB IDE 硬盘 |
支持的 Java 版本 | 不支持 Java 9 和 10 |
1.2 部署ZooKeeper集群
主机 | 服务/程序 | 备注 |
---|---|---|
191.168.110.21(4C/4G) | JDK、ZooKeeper | ZK 集群 |
191.168.110.32(4C/4G) | JDK、ZooKeeper | - |
191.168.110.33(4C/4G) | JDK、ZooKeeper | - |
1.1.1 配置HOSTS解析
# 三台机器均操作 [root@zk-server-all ~]# cat >> /etc/hosts <<EOF 191.168.110.31 zk-server-01 191.168.110.32 zk-server-02 191.168.110.33 zk-server-03 EOF
1.1.2 安装JDK环境
-
二进制包下载连接:Index of java-local/jdk
# 三台机器均要安装,只在zk-server-01上操作 # ZK 依赖于 JDK,所以部署 ZK 之前确保 JDK 环境正常。 [root@zk-server-01 ~]# wget -c https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz [root@zk-server-01 ~]# rsync -avz jdk-8u202-linux-x64.tar.gz zk-server-02:/root/ [root@zk-server-01 ~]# rsync -avz jdk-8u202-linux-x64.tar.gz zk-server-03:/root/
1.1.3 解压
[root@zk-server-all ~]# mkdir -p /home/data [root@zk-server-all ~]# tar xzf jdk-8u202-linux-x64.tar.gz -C /home/data/ [root@zk-server-all ~]# mv /home/data/jdk1.8.0_202/ /home/data/jdk [root@zk-server-all ~]# ln -s /home/data/jdk/bin/* /usr/bin/ [root@zk-server-all ~]# java -version java version "1.8.0_202" Java(TM) SE Runtime Environment (build 1.8.0_202-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
1.1.4 下载稳定版本的ZK
下载地址:https://zookeeper.net.cn/releases.html
1.1.5 安装
[root@zk-server-all ~]# wget -c https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz [root@zk-server-all ~]# tar xzf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/ [root@zk-server-all ~]# mv /usr/local/apache-zookeeper-3.8.4-bin/ /usr/local/zookeeper [root@zk-server-all ~]# ll /usr/local/zookeeper/ total 36 drwxr-xr-x 2 1000 1000 4096 Feb 13 06:15 bin drwxr-xr-x 2 1000 1000 72 Feb 13 06:15 conf drwxr-xr-x 5 1000 1000 4096 Feb 13 06:16 docs drwxr-xr-x 2 root root 4096 Aug 7 14:37 lib -rw-r--r-- 1 1000 1000 11358 Feb 13 06:15 LICENSE.txt -rw-r--r-- 1 1000 1000 2084 Feb 13 06:15 NOTICE.txt -rw-r--r-- 1 1000 1000 2335 Feb 13 06:15 README.md -rw-r--r-- 1 1000 1000 3570 Feb 13 06:15 README_packaging.md
1.1.6 修改配置
[root@zk-server-all ~]# cd /usr/local/zookeeper/conf/ [root@zk-server-all conf]# mv zoo_sample.cfg zoo.cfg [root@zk-server-all conf]# cd .. # 首先 zookeeper 目录下创建 zookeeper 数据和日志的存放目录,并且添加文件读写权限 [root@zk-server-all zookeeper]# mkdir {data,logs} [root@zk-server-all zookeeper]# cd conf/ [root@zk-server-all conf]# vim zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/logs clientPort=2181 autopurge.snapRetainCount=500 autopurge.purgeInterval=24 server.1= zk-server-01:2888:3888 server.2= zk-server-02:2888:3888 server.3= zk-server-03:2888:3888
[!IMPORTANT]
tickTime=2000
: 这个参数设置了基本的时间单元(tick),它是 Zookeeper 会话超时和选举超时等操作的时间基础。这里设置为 2000 毫秒。
initLimit=10
: 这个参数定义了 Zookeeper 服务在初始化时,允许的最小服务器连接数(服务器间)。这个值应该是2 * tickTime
的倍数,这里设置为 10 个 tickTime。
syncLimit=5
: 这个参数定义了 Zookeeper 服务在进行数据同步时,允许的最大服务器连接数(服务器间)。这个值应该是2 * tickTime
的倍数,这里设置为 5 个 tickTime。
dataDir=/usr/local/zookeeper/data
: 这个参数指定了 Zookeeper 存储数据的目录。所有的数据和快照都会存储在这个目录下。
dataLogDir=/usr/local/zookeeper/logs
: 这个参数指定了 Zookeeper 存储事务日志的目录。事务日志用于确保数据的一致性。
clientPort=2181
: 这个参数定义了 Zookeeper 服务监听客户端连接的端口号。客户端通过这个端口与 Zookeeper 服务进行通信。
autopurge.snapRetainCount=500
: 这个参数设置了 Zookeeper 服务自动清理时保留的快照数量。这里设置为保留 500 个快照。
autopurge.purgeInterval=24
: 这个参数设置了 Zookeeper 服务自动清理的间隔时间,单位是小时。这里设置为每 24 小时清理一次。
server.1=zk-server-01:2888:3888
: 这个参数定义了 Zookeeper 集群中的服务器 1 的信息。zk-server-01
是服务器的主机名,2888
是用于集群通信的端口,3888
是用于领导者选举的端口。
server.2=zk-server-02:2888:3888
: 类似于server.1
,这是集群中服务器 2 的配置。
server.3=zk-server-03:2888:3888
: 这是集群中服务器 3 的配置,与server.1
和server.2
类似。
1.1.7 创建 ServerID 标识
[root@zk-server-01 ~]# echo "1" > /usr/local/zookeeper/data/myid [root@zk-server-02 ~]# echo "2" > /usr/local/zookeeper/data/myid [root@zk-server-03 ~]# echo "3" > /usr/local/zookeeper/data/myid
1.1.8 集群启动测试
[root@zk-server-01 ~]# /usr/local/zookeeper/bin/zkServer.sh start /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk-server-01 ~]# /usr/local/zookeeper/bin/zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower [root@zk-server-02 ~]# /usr/local/zookeeper/bin/zkServer.sh start /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk-server-02 ~]# /usr/local/zookeeper/bin/zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: leader [root@zk-server-03 ~]# /usr/local/zookeeper/bin/zkServer.sh start /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk-server-03 ~]# /usr/local/zookeeper/bin/zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Mode: follower
相关文章:

ZooKeeper集群环境部署
1. ZooKeeper安装部署 1.1 系统要求 1.1.1 支持的平台 ZooKeeper 由多个组件组成。一些组件得到广泛支持,而另一些组件仅在较小的一组平台上得到支持。 客户端是 Java 客户端库,由应用程序用于连接到 ZooKeeper 集群。 服务器是在 ZooKeeper 集群节点…...

10 个 C# 关键字和功能
在 Stack Overflow 调查中,C# 语言是排名第 5 位的编程语言。它广泛用于创建各种应用程序,范围从桌面到移动设备再到云原生。由于有如此多的语言关键字和功能,对于开发人员来说,要跟上新功能发布的最新信息将是一项艰巨的任务。本…...
贪心算法之重叠区间问题
以下四个题都是重叠区间问题 452. 用最少数量的箭引爆气球 为了让气球尽可能重叠,先按照气球起始位置由大到小排序tips:sort默认就可以实现以上排序,不需要写cmp重点:当下一个气球的左边界不小于上一个气球的右边界时(即有重叠的…...

Python爬虫入门教程(非常详细)适合零基础小白
一、什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将…...

ArcGIS Pro基础:软件的常用设置:中文语言、自动保存、默认底图
上图所示,在【选项】(Options)里找到【语言】设置,将语言切换为中文选项,记得在安装软件时,需要提前安装好ArcGIS语言包。 上图所示,在【选项】里找到【编辑】设置,可以更改软件默认…...

依赖注入+中央事件总线:Vue 3组件通信新玩法
🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue篇专栏内容:Vue-依赖注入-中央事件总线 目录 中央事件总线使用 依赖注入使用 总结 中央事件总线 依赖注入…...

EasyCVR视频汇聚平台构建远程安防监控:5大亮点解析,助力安防无死角
随着科技的飞速发展,远程安防监控系统已经成为现代社会中不可或缺的一部分,无论是在小区、公共场所还是工业领域,安防监控都发挥着至关重要的作用。而EasyCVR作为一款功能强大的视频监控综合管理平台,其在构建远程安防监控系统方面…...

fastadmin安装插件报500的错误
项目场景: 项目新建后,想在本地项目中安装相关的插件,但是在插件管理页面点击安装的时候一直报500的错误。 问题描述 我们将项目中的调试打开,在application/config.php里修改 app_debug,将false改为true,…...
速盾:为什么需要服务器和cdn?
在互联网时代,服务器和CDN(内容分发网络)起着非常重要的作用。它们是实现高效、稳定和可靠网络服务的关键组成部分。下面我将详细阐述为什么需要服务器和CDN。 首先,服务器是互联网上存储、处理和传输数据的中心枢纽。当我们在浏…...

十四、模拟实现 list 类
Ⅰ . list 基本框架的实现 01 结点的建立 为了实现链表,我们首先要做的应该是建立结点 为了和真正的 list 进行区分,我们仍然在自己的命名空间内实现 代码实现: namespace yxt {// 建立结点template<class T>struct ListNode{T _d…...
JavaScript简介之引入方式
JavaScript 引入方式 提问:CSS的引入方式?在学习 JavaScript 语法之前,我们首先要知道在哪里写 JavaScript 才行。想要在 HTML 中引入 JavaScript,一般有 3 种方式。 外部 JavaScript 内部 JavaScript 元素事件 JavaScript&#…...

同一台电脑上安装不同版本的nodejs(搭配VSCode)
今天拉取了一个前后端分离的项目,运行前端的时候,出现node版本不匹配的情况。 本文章将从安装node.js开始到VSCode使用进行讲解 1、去官网下载node版本 以16版本为例,需要哪个版本,就在网址上把版本号替换即可 https://nodejs.o…...

python小游戏之摇骰子猜大小
最近学习Python的随机数,逻辑判断,循环的用法,就想找一些练习题,比如小游戏猜大小,程序思路如下: 附上源代码如下: 摇骰子的函数,这个函数其实并不需要传任何参数,调用后…...

C++入门——12继承
1.继承 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简…...

Python做统计图之美
Python数据分析可视化 案例效果图 import pandas as pd import matplotlib.pyplot as plt import matplotlib# 数据 data {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", &q…...

激光雷达点云投影到图像平面
将激光雷达点云投影到图像平面涉及几何变换和相机模型的应用。以下是该过程的基本原理: 1. 坐标系转换 激光雷达生成的点云通常位于激光雷达的坐标系中,而图像则在相机坐标系中。为了将点云投影到图像上,首先需要将点云从激光雷达坐标系转换…...
[python]将anaconda默认创建环境python版本设置为32位的
首先看看gpt怎么回答的 装了Anaconda。如果尚未安装,可以从Anaconda官网下载适合你的操作系统的安装程序,并按照安装向导进行安装。 二、创建32位Python环境 在Anaconda中,你可以通过修改环境变量来尝试切换到32位模式(尽管这并…...

Jmeter+Influxdb+Grafana平台监控性能测试过程(三种方式)
一、Jmeter自带插件监控 下载地址:Install :: JMeter-Plugins.org 安装:下载后文件为jmeter-plugins-manager-1.3.jar,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。 启动Jmeter,测试计…...
[创业之路-135] :ERP、PDM、EDM、Git各种的用途和区别,硬件型初创公司需要哪些管理工具?
目录 前言: 一、ERP(企业资源计划) 二、PDM(产品数据管理系统) 三、EDM(文档管理系统,有时也指电子邮件营销) 四、Git 总结 五、硬件研发、生产型企业需要哪些管理工具&#…...

通过剪枝与知识蒸馏优化大型语言模型:NVIDIA在Llama 3.1模型上的实践与创新
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...