Centos7 安装部署Zookeeper

官网地址:https://zookeeper.apache.org/

1. Zookeeper 介绍

Apache ZooKeeper是一个开源的分布式协调服务,它用于维护配置信息、命名、提供分布式同步以及提供组服务等。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,提供给用户一个简单易用的接口。

2. Zookeeper 软件包下载地址

下载地址: https://zookeeper.apache.org/releases.html
当前稳定版本下载地址:
https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
下载后上传到服务器。

发布策略: Apache ZooKeeper 社区同时支持两个发布分支:稳定版和当前版。一旦发布新的次要版本,稳定版本预计将很快退役,大约半年后将宣布停用。在半年的宽限期内,预计只会为该版本发布安全和关键修复。宣布停用后,社区将不再提供任何补丁。所有
ZooKeeper 版本仍可从官方 Apache 档案中访问。

3. 系统要求

文档参考:https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_systemReq

所需软件: ZooKeeper 在 Java 1.8 或更高版本中运行(JDK 8 LTS、JDK 11 LTS、JDK 12 - 不支持 Java 9 和 10)。它作为ZooKeeper 服务器的集合运行。三个 ZooKeeper 服务器是集合的最小建议大小。

可以安装openjdk或者配置oracle的jdk

# 安装openjdk
# yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)

4. 部署Zookeeper单机部署

参考文档:https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_InstallingSingleMode

将下载的压缩包上传到服务器解压,进入到conf目录

zoo_sample.cfg 配置·文件模板,重新复制一份即可

[root@localhost conf]# ls
configuration.xsl  logback.xml zoo_sample.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg

默认配置参数介绍:
文档参考:https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_provisioning

[root@localhost conf]# grep -vE '^#|^$'  zoo.cfg 
tickTime=2000		# 客户端与服务器之间维持心跳的时间间隔,单位是毫秒
initLimit=10		# 发送的最多心跳个数,如果在 initLimit * tickTime 的时间内 Follower 未能与 Leader 建立连接,那么 Follower 将认为自己启动失败 
syncLimit=5		    # 如果Leader节点在 5 * tickTime内没有收到来自某个 Follower 节点的心跳响应,Leader 节点会认为该 Follower 节点不可达或已宕机。Leader 节点会尝试重新连接该 Follower 节点,并可能在多次尝试失败后从集群中暂时移除该 Follower 节点。
dataDir=/tmp/zookeeper # 指定了 ZooKeeper 存储其数据文件的位置包含了 ZooKeeper 的内存数据库的快照(snapshots)和事务日志(transaction logs)。
clientPort=2181  # 监听客户端连接的端口;

数据目录真实环境下不要放在/tmp/目录下,以防系统重启后数据丢失

启动zookeeper

[root@localhost conf]# ../bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.4-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

zkServer.sh 参数介绍:

[root@localhost conf]# ../bin/zkServer.sh --help
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.4-bin/bin/../conf/zoo.cfg
Usage: ../bin/zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}
  • –config <conf-dir>: 如何配置文件不在默认config目录下可以指定
  • start :启动 ZooKeeper
  • start-foreground : 在前台启动Zookeeper
  • stop:停止 ZooKeeper 服务器
  • version : 打印版本
  • restart:重启zookeeper
  • status: 检查zookeeper状态
  • print-cmd:打印启动 ZooKeeper 服务器时使用的完整命令。这个命令对于调试配置问题很有用,因为它显示了实际执行的命令。

查看端口监听情况:

# 通过进程号查看端口占用情况
[root@localhost conf]# netstat  -tnlp|grep 1532
tcp6       0      0 :::8080                 :::*                    LISTEN      1532/java           
tcp6       0      0 :::38776                :::*                    LISTEN      1532/java           
tcp6       0      0 :::2181                 :::*                    LISTEN      1532/java
  • 2181 :客户端连接端口
  • 8080:嵌入式的 Jetty 服务器,提供了一个 HTTP 接口来管理 ZooKeeper
  • 34097:为了支持JMX(Java Management Extensions)调用。JMX是一个为Java应用程序提供管理远程监控和管理功能的标准。

从 3.5 版本开始,ZooKeeper 引入了一个新的特性,即 AdminServer,它是一个嵌入式的 Jetty 服务器,提供了一个 HTTP 接口来管理 ZooKeeper。这个 AdminServer 默认监听在 8080 端口上,可以通过 URL “/commands/[command name]” 来执行命令,响应以 JSON 格式返回。
修改Jetty 端口: admin.serverPort=8888
如果需要关闭Jetty 服务:admin.enableServer=false

如果想关闭 随机端口,可以在启动脚本里面添加 export JMXDISABLE=true 参数
[root@localhost conf]# grep “export JMXDISABLE=true” …/bin/zkServer.sh
export JMXDISABLE=true

zookeeper单机模式到此就配置完成了。

5. 部署Zookeeper集群

集群最小个数为3台,例如,如果有四台机器,ZooKeeper 只能处理一台机器的故障;如果两台机器发生故障,剩下的两台机器就不构成多数。但是,如果有五台机器,ZooKeeper 可以处理两台机器的故障,强烈建议您使用奇数台服务器。

关于集群的设置的建议(集群(多服务器)设置):https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_zkMulitServerSetup

server.1192.168.0.219
server.2192.168.0.220
server.3192.168.0.221

所有Zookeeper 集群配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
server.1=192.168.0.219:2888:3888
server.2=192.168.0.220:2888:3888
server.3=192.168.0.221:2888:3888
  • 2888 : 用于follower和leader交换消息的端口
  • 3888:是选举leader时使用的端口。

记得关闭防火墙或者开放2888,3888,2181端口,selinux
数据目录真实环境下不要放在/tmp/目录下,以防系统重启后数据丢失

创建myid文件文件
在每台服务器上的数据目录下,创建一个myid文件,文件内容为你的server.X配置中的X值。

[root@zook-01 ~]# echo "1" > /tmp/zookeeper/myid
[root@zook-02 ~]# echo "2" > /tmp/zookeeper/myid
[root@zook-03 ~]# echo "3" > /tmp/zookeeper/myid

启动zookeeper
最好是一台一台启动,优先启动的成为leader,follower心跳响应leader之后,建立连接,集群就正常了。

leader:

[root@zook-01 bin]# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.4-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

follower:

[root@zook-02 bin]# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.4-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

follower:

[root@zook-01 bin]# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.8.4-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

到这里zookeeper集群就搭建完毕了。

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

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

相关文章

一款新开源跨平台的.NET Word(docx)模版导出引擎,完美支持Linux和Mac操作系统(附源码)

前言 在数字化办公日益盛行的今天&#xff0c;文档处理成为了我们日常工作不可或缺的一部分。然而&#xff0c;许多传统的文档处理工具都依赖于特定的操作系统和复杂的组件安装&#xff0c;这无疑给跨平台办公带来了诸多不便。为了解决这一问题&#xff0c;我们找到了一个新的…

【MR开发】在Pico设备上接入MRTK3(一)——在Unity工程中导入MRTK3依赖

写在前面的话 在Pico上接入MRTK3&#xff0c;目前已有大佬开源。 https://github.com/Phantomxm2021/PicoMRTK3 也有值得推荐的文章。 MRTK3在PICO4上的使用小结 但由于在MacOS上使用MRTK3&#xff0c;无法通过Mixed Reality Feature Tool工具管理MRTK3安装包。 故记录一下…

◇【论文_20151120_20160405v3】Dueling Network 决斗〔Google DeepMind〕

整理代码&#xff1a;Dueling_DQN__Pendulum_v1.ipynb https://arxiv.org/abs/1511.06581 Dueling Network Architectures for Deep Reinforcement Learning 文章目录 摘要1. 引言1.1. 相关工作 2. 背景2.1. Deep Q-networks 【DQN】2.2. Double Deep Q-networks 【DDQN】2.3…

OpenCV高级图形用户界面(13)选择图像中的一个矩形区域的函数selectROI()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 允许用户在给定的图像上选择一个感兴趣区域&#xff08;ROI&#xff09;。 该功能创建一个窗口&#xff0c;并允许用户使用鼠标来选择一个 ROI。…

其他css的用途

1.animation-fill-mode: backwards; //避免了在动画开始前元素的突然显现&#xff0c;动画必要。 2.用rem响应式字体大小&#xff0c;可以在html样式定义font-size?(例10px&#xff0c;62.5%(100%是16px))。然后样式就可以用rem代替px。 3.color: transparent;: 这行代码将文…

计算生物学与生物信息学漫谈-2-测序深度/读长质量和Fasta处理

上一篇文章中我们介绍了测序技术的由来与发展&#xff0c;那么在介绍第三代测序的时候&#xff0c;我们提到了关于测序深度和读长的问题&#xff0c;那么本篇文章就详解介绍一下。 计算生物学与生物信息学漫谈-1-测序一路走来-CSDN博客 目录 1.测序深度SEQUENCING DEPTH &…

《AI生成式工具使用》之:自助生成视频

目录 背景说明及目标&#xff1a; 实现过程&#xff1a; 1、有问题找度娘 2、利用剪映AI生成视频具体步骤 剪映AI感受 3、利用万彩AI生成视频具体步骤 万彩AI感受 4、利用腾讯云剪生成视频具体步骤 腾讯云剪感受 最终结论&#xff1a; 关注我&#xff0c;躺不平就一起…

【部署篇】RabbitMq-02单机模式部署

RabbitMQ和Erlang/OTP兼容性矩阵 下表提供了当前支持的RabbitMQ版本系列的Erlang兼容性矩阵。更多RabbitMQ版本&#xff0c;请参阅官网的系列兼容性列表。官网地址&#xff1a;https://www.rabbitmq.com/docs/which-erlang RabbitMQ版本最小支持版本最大支持版本备注 4.0.24.…

Axure重要元件三——中继器添加数据

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 本节课&#xff1a;中继器添加数据 课程内容&#xff1a;添加数据项、自动添加序号、自动添加数据汇总 应用场景&#xff1a;表单数据的添加 案例展示&#xff1a; 步骤…

经验是最坏的老师

奥斯卡.王尔德说过&#xff1a;经验是最坏的老师。他经常先考试&#xff0c;然后再给出指导。 这让我想起了另外一句话&#xff1a;愚笨的人&#xff0c;往往都在犯同样的错误&#xff1b;普通的人&#xff0c;从自己的错误中学习&#xff1b;聪明人从别人的错误中学习。 如果…

Linux 防火墙的开启、关闭、禁用命令

Linux 防火墙的开启、关闭、禁用命令 文章目录 Linux 防火墙的开启、关闭、禁用命令1.设置开机启用防火墙2.设置开机禁用防火墙3.启动防火墙4.关闭防火墙5.检查防火墙状态 1.设置开机启用防火墙 systemctl enable firewalld.service2.设置开机禁用防火墙 systemctl disable f…

006、链表分割

0、题目描述 链表分割 这道题的思路&#xff0c;遍历原链表&#xff0c;小于x的放到一个链表里&#xff0c;大于x的放到另一个链表里。然后把两个链表接起来。 建立的两个新链表都是有哨兵位的&#xff0c;也就是有头结点&#xff0c;排序结束后要free两个头结点。 1、法1 还…

CSS3 提示框带边角popover

CSS3 提示框带边角popover。因为需要绝对定位子元素&#xff08;这里就是伪元素&#xff09;&#xff0c;所以需要将其设置为相对对位 <!DOCTYPE html> <html> <head> <title>test1.html</title> <meta name"keywords" con…

格点拉格朗日插值与PME算法

技术背景 在前面的一篇博客中&#xff0c;我们介绍了拉格朗日插值法的基本由来和表示形式。这里我们要介绍一种拉格朗日插值法的应用场景&#xff1a;格点拉格朗日插值法。这种场景的优势在于&#xff0c;如果我们要对整个实数空间进行求和或者积分&#xff0c;计算量是随着变量…

JDK中socket源码解析

目录 1、Java.net包 1. Socket通信相关类 2. URL和URI处理类 3. 网络地址和主机名解析类 4. 代理和认证相关类 5. 网络缓存和Cookie管理类 6. 其他网络相关工具类 2、什么是socket&#xff1f; 3、JDK中socket核心Api 4、核心源码 1、核心方法 2、本地方法 3、lin…

SQL Server 2019数据库“正常,已自动关闭”

现象&#xff1a; SQL Server 2019中&#xff0c;某个数据库在SQL Server Management Studio&#xff08;SSMS&#xff09;中的状态显示为“正常&#xff0c;已自动关闭”。 解释&#xff1a; 如此显示&#xff0c;是由于该数据库的AUTO_ CLOSE选项被设为True。 在微软的官…

基于 Konva 实现Web PPT 编辑器(三)

完善公式 上一节我们简单讲述了公式的使用&#xff0c;并没有给出完整的样例&#xff0c;下面还是完善下相关步骤&#xff0c;我们是默认支持公式的编辑功能的哈&#xff0c;因此&#xff0c;我们只需要提供必要的符号即可&#xff1a; 符号所表达的含义是 mathlive 的command命…

电力系统IEC-101报文主要常用详解

文章目录 1️⃣ IEC-1011.1 前言1.2 101规约简述1.3 固定帧格式1.4 可变帧格式1.5 ASDU1.5.1 常见类型标识1.5.2 常见结构限定词1.5.3 常见传送原因1.5.4 信息体地址 1.6 常用功能报文1.6.1 初始化链路报文1.6.2 总召报文1.6.3 复位进程1.8.4 对时1.8.4.1时钟读取1.8.4.2时钟写…

适用于 vue react Es6 jQuery 等等的组织架构图(组织结构图)

我这里找的是 OrgChart 插件; 地址: GitHub - dabeng/OrgChart: Its a simple and direct organization chart plugin. Anytime you want a tree-like chart, you can turn to OrgChart. 这里面能满足你对组织架构图的一切需求! ! ! 例: 按需加载 / 拖拽 / 编辑 / 自定义 / …

基于STM32F407VGT6芯片----跑马灯实验

一、在STM32F407VGT6芯片中配置GPIO环境 对于一个跑马灯实验&#xff0c;首先&#xff0c;要了解的就是&#xff0c;芯片是如何构造出来的&#xff0c;设计GPIO引脚&#xff1a;根据原理图&#xff0c; PC4&#xff0c;PC5,PC6,PC7 为 LED 输出控制管脚&#xff0c;PE0 为蜂鸣…