ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。
Zookeeper 由 雅虎研究院 开发,后来捐赠给了 Apache软件基金会 。由于雅虎内部很多大型系统都依赖着一个类似的组件来协调多个服务,但这个组件存在单点故障问题,因此研究人员就开始研发一个通用的协调框架zookeeper。
由于之前已经有很多项目均以动物命名如pig, cat,因此就起名叫动物园管理员(zookeeper)。
特点:
注意:需要在电脑上配置JDK,如果有,这步忽略!
如果没有配置可查看如下教程Java JDK安装及环境变量配置(windows)
官网下载链接:Zookeeper安装包
选择自己想要的版本进行下载,这里我选择了apache-zookeeper-3.6.0-bin.tar.gz:
这里我的目录为D:/zookeeper
将 conf 目录下的 zoo_sample.cfg 文件j进行复制,重命名为 zoo.cfg。
注意:复制后删掉 zoo_sample.cfg !!!
修改 zoo.cfg 配置文件中 zookeeper 的数据文件存储位置及添加其日志文件位置。
我们在zookeeper目录下新建两个文件夹,分别用于存放data(数据存储)和log(数据日志):
修改conf下zoo.cfg配置中数据存储和数据日志路径,添加数据日志路径配置。
dataDir=D:\zookeeper\apache-zookeeper-3.6.0-bin\data
dataLogDir=D:\zookeeper\apache-zookeeper-3.6.0-bin\log
zoo.cfg配置文件中参数的作用如下:
参数 | 作用 |
---|---|
tickTime | 客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间 |
initLimit | 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数 |
syncLimit | 集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数 |
dataDir | 用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。 |
dataLogDir | 存放事务日志的文件夹 |
clientPort | 客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。 |
maxClientCnxns | 允许连接的客户端数目,0为不限制,通过IP来区分不同的客户端 |
在 zkEnv.cmd的34、35行配置一下java home和jdk位置,确保zookeeper能够成功运行!
set JAVA=D:\java\jdk\jdk1.8.0_202\bin
set JAVA HOME=D:\java\jdk
D:\zookeeper\apache-zookeeper-3.6.0-bin\bin目录下存在zkCli.cmd和zkServer.cmd两个文件。
文件 | 验证 |
---|---|
zkServer.cmd | 启动zookeeper服务 |
zkCli.cmd | 是否安装成功 |
注意:先要启动服务端(zkServer),然后再启动客户端(zkCil),否则会报错!
注意:保持服务端开启,不然你客户端访问谁呢?
Zookeeper配置成功!!!
zookeeper新版本启动的过程中,zookeeper新增的审核日志是默认关闭,所以控制台输出ZooKeeper audit is disabled,标准的修改方式应该是在 zkServer.cmd 第24行新增:
"-Dzookeeper.audit.enable=true"
注意:如果还是不行就将版本降低至3.6.0以下。
原因:服务端(zkServer)未启动!
运行 zkCli.cmd 闪退,需要先运行了zkServer.cmd!
第5步中zoo_sample.cfg文件可能没有删除,会默认读取该文件而忽略zoo.cfg!
END