摘自:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/#icomments,更多内容参考原文java
更多zookeeper学习内容见:http://agapple.iteye.com/blog/1111377node
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本能够经过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装很是简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。apache
单机安装很是简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/zookeeper-3.2.2 下,Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是zkServer.sh,在 3.2.2 这个版本 Zookeeper 没有提供 windows 下的启动脚本,因此要想在 windows 下启动 Zookeeper 要本身手工写一个,如清单 1 所示:windows
setlocal set ZOOCFGDIR=%~dp0%..\conf set ZOO_LOG_DIR=%~dp0%.. set ZOO_LOG4J_PROP=INFO,CONSOLE set CLASSPATH=%ZOOCFGDIR% set CLASSPATH=%~dp0..\*;%~dp0..\lib\*;%CLASSPATH% set CLASSPATH=%~dp0..\build\classes;%~dp0..\build\lib\*;%CLASSPATH% set ZOOCFG=%ZOOCFGDIR%\zoo.cfg set ZOOMAIN=org.apache.zookeeper.server.ZooKeeperServerMain java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %* endlocal
在你执行启动脚本以前,还有几个基本的配置项须要配置一下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你须要作的就是将 zoo_sample.cfg 更名为 zoo.cfg,由于 Zookeeper 在启动时会找这个文件做为默认配置文件。下面详细介绍一下,这个配置文件中各个配置项的意义。服务器
tickTime=2000 dataDir=D:/devtools/zookeeper-3.2.2/build clientPort=2181
当这些配置项配置好后,你如今就能够启动 Zookeeper 了( sh zkServer.sh),启动后要检查 Zookeeper 是否已经在服务,能够经过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务。session
Zookeeper 不只能够单机提供服务,同时也支持多机组成集群来提供服务。实际上 Zookeeper 还支持另一种伪集群的方式,也就是能够在一台物理机上运行多个 Zookeeper 实例,下面将介绍集群模式的安装和配置。数据结构
Zookeeper 的集群模式的安装和配置也不是很复杂,所要作的就是增长几个配置项。集群模式除了上面的三个配置项还要增长下面几个配置项:app
initLimit=5 syncLimit=2 server.1=192.168.211.1:2888:3888 server.2=192.168.211.2:2888:3888
除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断究竟是那个 server。oop
Zookeeper 会维护一个具备层次关系的数据结构,它很是相似于一个标准的文件系统,如图 1 所示:post
Zookeeper 这种数据结构有以下这些特色: