准备工作

下载jdk,
下载zk:https://zookeeper.apache.org/releases.html

修改配置

在conf目录中,重命名zoo_sample.cfg为zoo.cfg,设置配置项:
dataDir:数据存放目录;
clientPort:监听客户端连接的端口;
server.A=B:C:D:集群节点信息,
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。

创建myid文件

在 上一步 dataDir 指定的目录下,创建 myid 文件,文件内容就是server.server.A=B:C:D配置中A的值。

日志配置

日志配置文件是conf\log4j.properties。其中zookeeper.root.logger=INFO,CONSOLE,该配置只能将日志打印到控制台,要想打印到文件中,需要改为zookeeper.root.logger=INFO,CONSOLE,ROLLINGFILE。zookeeper.log.dir配置日志目录,zookeeper.log.file配置日志文件名称。

windows下zkServer.cmd中,要把启动命令的日志相关属性去掉:

  1. 原命令为:
  2. call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*
  3. 改为:
  4. call %JAVA% "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*

linux下也需要相应的调整。

启动zk

windows下直接运行zkServer.cmd。
linux下运行zkServer.sh start。