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

ZooKeeper安装与配置集群

简介:

       ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

      ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

ZooKeeper的优点包括:

  1. 高可靠性:ZooKeeper是一个高可靠的分布式协调服务,可以保证数据的一致性和完整性。
  2. 可扩展性:ZooKeeper支持动态扩展和缩减,可以根据需求调整资源的分配。
  3. 易用性:ZooKeeper提供了简单的原语集,使得开发者可以快速实现分布式应用。
  4. 安全性:ZooKeeper使用SSL加密通信,保证数据传输的安全性。

ZooKeeper是一个强大且灵活的分布式协调服务,适用于大规模分布式系统的场景。

下载路径

Index of /apache/zookeeper/zookeeper-3.7.1

注意: 3.5.5开始的版本要下载尾部有bin 别问为什么会报错

 3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的,里面有编译后的二进制的包。之前版本tar.gz包里面是只是源码包,无法直接使用。

配置环境变量

检测是否在系统变量path中配置 %JAVA_HOME%\bin 如果没有新建配置一下

说明

当前是windows的一个伪集群,正常的生产环境中分别部署到每一台机器上,也不是windows而是容器或linux中。

为什么是集群不是单机当然是保证系统高可用了那 开始吧......... 

解压目录

 打开conf中的zoo_sample.cfg,修改后另存为zoo.cfg ,原始(zoo_sample.cfg)文件不会被执行。

 

配置参数解析 zoo.cfg

1.tickTime:CS通信心跳时间Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。tickTime=2000

2.initLimit:LF初始通信时限集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。initLimit=5

3.syncLimit:LF同步通信时限集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。syncLimit=2

4.dataDir:数据文件目录Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。dataDir=/home/zookeeper/zookeeper/zkdata

5.clientPort:客户端连接端口客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。clientPort=2181

6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)规则如下:集群分布模式,server.id(数字)=ip:集群交互端口:选举leader端口
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

修改配置

注意:  下面路径单斜 " \ " 会当做是转义符处理 "  \\ "  斜杠可以解决。(单机没问题 如果是集群 必报错)


dataDir=D:\work\zookeeperColony\apache-zookeeper-3.7.1-bin-server1\data

dataLogDir=D:\work\zookeeperColony\apache-zookeeper-3.7.1-bin-server1\logs


#伪集群分布模式,server.id(注意是数字)=ip:集群交互端口:选举leader端口
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

 

 在server1、 server2、 server3、分别创建 data  文件夹 ,data中创建myid文件(注意:不需要任何后缀),myid文件内容分别为1、2、3(对应的各server.id)。

注意: 集群启动时要检查是否有该文件,如果没有话,会报错!

 

 

 

 

 启动闪退 

如果启动闪退  你可以编译 bin 下的 zkServer.cmd 添加pause  可以更清楚看清错误

 

 启动实例

三个实例都配置完成后启动 bin 下的 zkServer.cmd 报错了

 单机可以正常启动,集群就报错。

原因:  集群查找myid文件就嗝屁……是把"\"当做是转义符处理,所以路径错误,找不到myid文件从而启动失败,修改该路径后重新启动一切正常(改为双斜杠\\)

修改路径: dataDir=D:\\work\\zookeeperColony\\apache-zookeeper-3.7.1-bin-server1\\data

                 dataLogDir=D:\\work\\zookeeperColony\\apache-zookeeper-3.7.1-bin-server1\\logs


http://www.kler.cn/news/16462.html

相关文章:

  • NECCS|全国大学生英语竞赛C类|词汇和语法|词汇题|21:03~21:53
  • 可视化绘图技巧100篇高级篇(一)-环状条形图(radial bar chart)
  • android基础知识
  • Redis高频面试题,使用场景
  • TiDB实战篇-操作系统参数TiDB Server
  • HDU5909 Tree Cutting(FWT)
  • 人人都可用chatgpt开发小项目
  • 第十二章 Transform组件(下)
  • numpy的下载、数据类型、属性、数组创建
  • Redis-列表(List)
  • 【23】linux进阶——linux的软链接和硬链接
  • NTT学习笔记(快速数论变换)
  • 【人脸检测】——YOLO5Face: Why Reinventing a Face Detector论文浅读
  • RT-Thread GD32F4xx 看门狗驱动
  • 1.3 HBase 基本架构
  • Android无线调试操作说明
  • 2023五一数学建模竞赛(五一赛)选题建议
  • 山东专升本计算机第九章-信息安全
  • 目标检测模型量化---用POT工具实现YOLOv5模型INT8量化
  • 详解Python web框架到底是怎么来的?
  • 设计 模式
  • C#手麻系统源码, 基于前端Winform+后端WCF +sqlserver 开发
  • KALI入门到高级【第五章】
  • Android 11.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析
  • MySQL表的插入详解
  • 12 网络管理的封装
  • SpringBoot 多数据源及事务解决方案
  • 实验5 彩色图像处理与图像变换
  • C语言学习第一次总结
  • Qt 信号与槽机制