ZooKeeper是一个分布式开源框架,供了协调分布式应用的基本服务。这些天在使用DUBBO,由于开发环境是在windows环境下,需要能够先运行ZooKeeper,然后在此基础上实现服务的地址分配。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.9src
ecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
在下面,先搭建一个单机模式的的ZooKeeper环境。
首先从将zookeeper下载下来。本人在这里下载的是3.4.9,下载地址在这里(http://mirror.bit.edu.cn/apache/zookeeper/)
下载后再将其解压到指定的目录中,我是解压到D盘中的,如下图所示:
复制zookeeper-3.4.9conf目录下的zoo_sample.cfg文件改名为zoo.cfg:
在zookeeper-3.4.9目录下新建两个文件夹,分别是data和logs。
修改zoo.cfg配置文件:
4、dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录
完成后进入zookeeper-3.4.9in目录下,使用命令或直接点击zkServer.cmd启动zookeeper。这是有遇到两个问题,一是Error: JAVA_HOME is not set.如下:
因为我的Java环境并不是通过JAVA_HOME来配置的,所以zookeeper默认是:
set的时候是在下面的,而上面的JAVA_HOME就找不到了,于是将set的配置移至第一个if前面了,并设置Java jdk的路径即可。如下图:
这样的话就可以解决该问题了。但是再次启动出现另一个问题是Error: JAVA_HOME is incorrectly set.如:
该问题的原因是在Windows下java默认安装装在C:Program FilesJavajdk1.xxx下,路径中存在空格,启动时会找不到正确的路径,在JAVA_HOME上加""即可。
这样修改后即可启动成功了。
有时候还会遇到这样的错误:
这个问题的原因是set JAVA_HOME的路径有错或没有清楚data和log(logs)文件目录的问价所致,清楚即可。
全程就只修改了两个文件:一个是zoo.cfg;另一个是zkEnv.cmd;其他不需要修改。
到此zookeeper就安装好了。