Zookeeper 在Windows下的安装过程及测试和遇到的问题

Zookeeper 在Windows下的安装过程及测试

  1. 安装jdk
  2. 安装Zookeeper. 在官网http://zookeeper.apache.org/下载zookeeper.我下载的是zookeeper-3.4.6版本。
  3. 解压zookeeper-3.4.6至D:\machine\zookeeper-3.4.6.
  4. 在D:\machine 新建data及log目录。
  5. ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。ZooKeeper 单机模式的安装相对比较简单,如果第一次接触ZooKeeper的话,建议安装ZooKeeper单机模式或者集群伪分布模式。
  6. 安装单击模式。 至D:\machine\zookeeper-3.4.6\conf 复制 zoo_sample.cfg 并粘贴到当前目录下,命名zoo.cfg.
  7. 编辑zoo.cfg.修改如下配置
    这里写图片描述
  8. cmd命令下进入D:\machine\zookeeper-3.4.6\bin目录下运行zkserver.cmd.如下图所示:
    这里写图片描述
  9. 启动完成后cmd命令下,netstat-ano查看端口监听服务。
  10. cmd下进入D:\machine\zookeeper-3.4.6\bin目录下运行zkcli.cmd.如下图所示:
    这里写图片描述
  11. 安装集群伪分布模式。
  12. 修改 zoo.cfg 文件。如下图所示:
    这里写图片描述
    另存为zoo-1.cmd.
    这里写图片描述
    另存为zoo-2.cmd.
    这里写图片描述
    另存为zoo-3.cmd.
  13. 修改zkserver.cmd文件。如下图所示:
    这里写图片描述
    另存为zkserver-1.cmd
    这里写图片描述
    另存为zkserver-2.cmd
    这里写图片描述
    另存为zkserver-3.cmd。
  14. cmd下分别运行zkserver-1.cmd,zkserver-2.cmd,zkserver-3.cmd.
  15. cmd下netstar-ano查看端口监听情况。
  16. cmd下运行zkcli.cmd -server:localhost:2181;zkcli.cmd ;-server:localhost:2182;zkcli.cmd -server:localhost:2183.
  17. zookeeper与java的连接
    这里写图片描述
    单机连接:
    这里写图片描述
    集群连接:
    这里写图片描述

部署过程中遇到的问题,zookeeper无法正常启动

今日为了释放空间,kill了zookeeper进程,没想到kill了后就启动不起来了

提示已正常启动

[root@lnx-a-11 bin]# ./zkServer.sh start
JMX enabled by default
Using config: /home/tester/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@lnx-air-9-27 bin]# ps aux |grep zook

但看后台进程没有

查看zookeeper.out日志,有如下提示:

2015-12-31 17:32:04,090 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /home/tester/zookeeper/bin/../conf/zoo.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:123)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /tmp/zookeeper/data/myid file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:350)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:119)

 

提示很明显/tmp/zookeeper/data/myid file is missing

到该目录下发现确实没有myid这个文件,大家知道/tmp文件夹是一个临时目录,里面的文件很可能过一段时间就会被删除

查看/etc/cron.daily/tmpwatch文件,显示如下内容

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
    -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
    -X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
    /usr/sbin/tmpwatch "$flags" -f 30d "$d"
    fi
done

 

可以知道/tmp文件中的内容除了设定的文件将会10d清除一次

所以我们不应该把myid放在/tmp下或者要把这个文件从清除文件中排除出去

 

添加myid文件,修改zoo.cfg中的data目录后,再次启动,启动成功

[root@lnx-a-11 bin]# ps aux |grep zook
root     21869 24.7  0.8 2584892 35100 pts/2   Sl   17:54   0:01 java -Dzookeeper.log.dir=/home/tester/zookeeper/bin/../logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /home/tester/zookeeper/bin/../build/classes:/home/tester/zookeeper/bin/../build/lib/*.jar:/home/tester/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/tester/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/tester/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/home/tester/zookeeper/bin/../lib/log4j-1.2.16.jar:/home/tester/zookeeper/bin/../lib/jline-0.9.94.jar:/home/tester/zookeeper/bin/../zookeeper-3.4.6.jar:/home/tester/zookeeper/bin/../src/java/lib/*.jar:/home/tester/zookeeper/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /home/tester/zookeeper/bin/../conf/zoo.cfg
root     21948  0.0  0.0 103252   808 pts/2    D+   17:55   0:00 grep zook

猜你喜欢

转载自my.oschina.net/iioschina/blog/1614088