文章目录

  • 概述
  • 下载
  • 安装
    • 单机版
    • 集群版
  • 配置介绍

概述

ZooKeeper 是分布式应用程序的高性能协调服务。它在一个简单的界面中公开了常用服务,例如命名、配置管理、同步和组服务,因此可以不必从头开始编写它们。可以现成地使用它来实现共识、组管理、领导者选举和存在协议,也可以根据自己的特定需求在此基础上进行构建。

下载

可以在Zookeper官网下载页下载zookeeper,这里有最新的zk发布包。
我这里下载是3.6.3版本,是截止到这篇博文发布前最稳定版本,下载链接为https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

安装

  1. 下载完成之后解压下载的压缩包到自己电脑盘符下,我这里是在D:\zookeeper下解压的,解压后根目录为D:\zookeeper\zookeeper-3.6.3

  2. 解压后进入conf文件夹下面,把zoo_sample.cfg复制一份并改名为zoo.cfg,zoo.cfg是zookeeper配置文件入口。

  3. 在根目录下新建一个data文件夹,用于存储内存数据库快照, 修改配置文件,将dataDir属性修改为自定义的data路径下,dataDir=D:/zookeeper/zookeeper-3.6.3/data,注意:路径分隔符要用反斜杠 /
    这样配置就基本结束了,接下来就是启动了,启动分为两种,单机版和集群版

单机版

zookeeper的启动命令都在bin目录下,进入bin目录下,.cmd是Windows版本的命令,.sh 是Linux的命令。
找到zkServer.cmd,

双击启动,看到如下窗口,不闪退,不报错就是启动成功了

也可以通过,双击客户端zkCli.cmd批处理命令来验证server是否启动成功。看到如下红框的内容则server启动成功

或者在配置文件中开启日志审核功能,audit.enable=true
在根目录下的logs文件夹下找到zookeeper_audit.log文件,看到如下结果则server启动成功

审核日志是3.6.0 中的新功能:默认情况下禁用审核日志。设置为“true”以启用它,有关日志审核可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAuditLogs.html

这样,单机版就完成了。

集群版

集群版就像对麻烦一点了,这里的集群还是伪集群,真正实现集群的操作跟单机版的伪集群差不多,只不过是操作不同的服务器而已。
步骤如下:

  1. 修改配置文件:找到zoo.cfg配置文件,在文件最后加上
# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

配置介绍:
集群配置节点是server.id=host:port1:port2形式,
id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间
host:zookeeper所在服务器的IP
port1:Zookeeper服务器之间的通信端口
port2:Leader选举的端口
从 ZooKeeper 3.6.0 开始,可以为每个 ZooKeeper 服务器 指定多个地址
形如:

server.1=zoo1-net1:2888:3888|zoo1-net2:2889:3889
server.2=zoo2-net1:2888:3888|zoo2-net2:2889:3889
server.3=zoo3-net1:2888:3888|zoo3-net2:2889:3889
  1. 添加myid文件
    myid文件代表着该zookeeper服务器的id文件,内容也很简单,就是一个名为myid的文件,文件内容就只有一个上面所说的id。
    在Windows系统中,创建一个名为myid的文本文件,然后输入一个id,最后删除文件后缀,不要任何后缀,否则会启动会报myid找不到异常。
    myid文件所在的路径就是配置文件中dataDir指定的路径下。

  2. 集群复制多份,将上述配置好的zookeeper复制两份,并修改每个配置文件中的clientPort、dataDir和admin.serverPort属性,还有myid中的数值。
    clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。
    admin.serverPort:嵌入式 Jetty 服务器监听的端口,默认为 8080。
    AdminServer是3.5.0 中新添加的功能,更多可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAdmin.html#sc_adminserver

配置文件:

tickTime=2000
initLimit=10
syncLimit=5dataDir=D:/zookeeper/zookeeper-3.6.3/data
dataLogDir=D:/zookeeper/zookeeper-3.6.3/logsclientPort=2181maxClientCnxns=60# 嵌入式 Jetty 服务器监听的端口。默认为 8080
admin.serverPort=8081messageTracker.Enabled=true
# 日志审核
audit.enable=true# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
  1. 启动集群, 分别到对应zookeeper集群的文件夹下双击zkServer.cmd批处理命令,出现以下日志则代表成功
2022-02-10 16:55:41,612 [myid:1] - INFO  [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast2022-02-10 16:55:49,084 [myid:3] - INFO  [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2183)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast

或者

2022-02-10 16:55:41,611 [myid:2] - INFO  [QuorumPeer[myid=2](plain=[0:0:0:0:0:0:0:0]:2182)(secure=disabled):QuorumPeer@864] - Peer state changed: leading - broadcast

可以看到三个zookeeper服务器,一个leader,两个following。

配置介绍

  • tickTime:心跳时间,单位毫秒,默认2000。zookeeper最小的会话超时时间是2个tickTime。
  • initLimit: follower连接和同步leader的超时时间,以tickTime为单位,默认10,也就是说10*tickTime时间之后客户端还没连接到服务器,则客户端连接失败。如果 ZooKeeper 管理的数据量很大,则根据需要增加此值。
  • syncLimit:follower连接和同步leader的超时时间,这个时间是leader向follower发送心跳之后,如果在syncLimit时间内没有收到follower的回信,表示follower掉线了。以tickTime为单位
  • dataDir:用于存储内存数据库快照的路径
  • dataLogDir:允许配置使用专用的日志设备,并有助于避免日志记录和快照之间的竞争。拥有专用日志设备对吞吐量和稳定延迟有很大影响。强烈建议专用日志设备并将dataLogDir设置为指向该设备上的目录,然后确保将dataDir指向不在该设备上的目录。
  • clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。
  • maxClientCnxns:通过 IP 地址限制单个客户端可以对 ZooKeeper 集合的单个服务器进行的并发连接数。用于防止某些类别的 DoS 攻击,包括文件描述符耗尽。默认值为 60。将此设置为 0 完全消除了对并发连接的限制。
  • admin.serverPort:嵌入式 Jetty 服务器监听的端口。默认为 8080
  • audit.enable:默认情况下禁用审核日志,默认值false。3.6.0 中的新功能
  • electionAlg:选举算法,0表示leader选举算法(基于UDP),1对应非认证的基于UDP的快速leader选举版本,2对应认证的基于UDP的快速leader选举版本,3对应基于TCP的快速leader版本选举。默认值是3。
  • autopurge.purgeInterval:Zookeeper服务端自动清除多余的日志和快照文件的周期,以小时为单位,设置正整数表示开启自动清除,默认0,不开启
  • server.id=host:port1:port2
    id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间
    host:zookeeper所在服务器的IP
    port1:Zookeeper服务器之间的通信端口
    port2:Leader选举的端口

更多配置请查看官网

能力一般,水平有限,如有错误,请多指出。
如果对你有用点个关注给个赞呗

在Windows系统上安装zookeeper相关推荐

  1. Redis进阶实践之三如何在Windows系统上安装安装Redis

    一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset( ...

  2. 如何在windows系统上安装ubuntu双系统

    如何在windows系统上安装ubuntu双系统 一.准备工具: 1.U盘 2.软碟通:UltraISO,EasyBCD 3.系统镜像.下载网址1:https://www.ubuntu.com/dow ...

  3. activeperl安装不成功_手把手教你:Windows系统上安装GPU深度学习环境

    前言 在入手学习深度学习的过程当中,有好几个朋友都咨询过我如何安装深度学习环境,之前写过一篇在Ubuntu环境下安装深度学习环境,但是有部分朋友在Windows电脑上安装深度学习环境遇到过许多的问题, ...

  4. 在windows系统上安装双系统

    在windows系统上安装双系统 参考https://zhuanlan.zhihu.com/p/50445643 以及 https://zhuanlan.zhihu.com/p/64961724 1. ...

  5. 苹果系统和windows系统怎么切换_【电脑】在windows系统上安装苹果Mac系统

    → 收集 | 排版 | 制作  ● 版权由老王,随意转载,必须备注来源 PS:分享涉及的软件,网站等资源,本人未收取任何费用,只为分享实用好玩的资源给大家,希望大家喜欢 大家好,我是老王! 不知道大家 ...

  6. Windows 系统上安装 CUDA Toolkit 10.1

    Windows 系统上安装 CUDA Toolkit 10.1 0. NVCUDA.DLL - NVIDIA CUDA 10.1.135 driver - NVIDIA 驱动程序版本 NVIDIA 控 ...

  7. MySQL数据库在Windows系统上安装和基本使用

    数据库安装+使用主要分为三个模块(安装模块+配置模块,图形界面安装使用+数据库基本语句) 主要近期学习数据库的使用,所以记录下便于以后回顾方便 步骤如下: 1.打开下载的mysql安装文件mysql- ...

  8. 在windows系统上安装Hadoop

    Hadoop都是在Linux上安装.配置.操作的,那么Hadoop可以在Windows上安装.运行吗? 答:我们知道Hadoop官网只提供了Hadoop的tar.gz安装包,显然是属于Linux系统的 ...

  9. windows系统上安装与使用Android NDK

    转自http://www.cnblogs.com/luxiaofeng54/archive/2011/02/12/1952391.html 很早就听说了android的NDK应用,只是一直没有时间去研 ...

  10. python安装出错0x80072ee7_如何在Windows系统上安装Python?

    现在用Python的人越来越多,很多学习使用Python的人并不是专业的程序员,而是希望利用Python这个工具去提升自己的工作效率,比如数据分析师.数据运营.风控人员.财务人员等职业都对Python ...

最新文章

  1. pandas将dataframe数据列中的年、月、日列组合成单一的日期数据列实战
  2. 【DP】K星人的语言(2020特长生 T3)
  3. 为余势负天工背,云原生内存数据库Tair助力用户体验优化
  4. MINA核心结构和处理消息的逻辑流程
  5. VUE-用到的样式左右(transform,translate,padding)
  6. 计算机出现硬盘数据丢失,硬盘数据丢失后的处理方法
  7. 统计学基础知识梳理(一)
  8. 文件关联修复工具(用文本文档保存后后缀修改为bat)
  9. 工具优化篇之IDEA新UI+日常插件
  10. 谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题
  11. 【Selenium】Selenium的3种等待方式
  12. html5柱状图模板,html5生成柱状图(条形图)
  13. 干货▍全网通俗易懂的数据竞赛大杀器XGBoost 算法详解
  14. Python数据分析之pandas学习
  15. 社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟
  16. 安大计算机考研专硕改数一英一了,What?这些个专业改考数一英一了!
  17. 京东商城之手机购买推荐
  18. new115.com dz.html,人源血管紧张素转化酶-C结构域在毕赤酵母中的表达
  19. B75对应的服务器芯片组,两代主力 编辑带你看B75和H61相差多少
  20. IMX6Q,fsl,mxc_sdc_fb显示屏驱动移植,板级文件到设备树

热门文章

  1. 【ObjectArx C++】CAD二次开发第一课 如何开发调试
  2. BP神经网络python代码详细解答(来自原文)
  3. 小甲鱼【C语言】《带你学C带你飞》笔记
  4. 如何用Java解压缩WAR文件
  5. ·ZZULIOJ 1040~1049(oj入门题)
  6. vue 中使用 js-xlsx 导出数据导 excle, 支持多 sheet
  7. access导入失败:操作必须使用一个可更新的查询。
  8. JavaScript实现在线Cron表达式生成器、预览工具 -toolfk程序员在线工具网
  9. 「硬见小百科」一文详解红外遥控模块工作原理
  10. 动作识别0-02:mmaction2(SlowFast)-官方数据训练测试-ucf101