zookerper单机,为集群,集群

zookeeper的安装支持单机模式和集群模式

下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/,当前稳定版本为3.4.8

单机模式

修改zookeeper配置文件zoo.cfg

解压后进入conf目录,修改zoo_sample.cfg文件名为:zoo.cfg,这是因为zookeeper启动时默认加载zoo.cfg配置文件。修改zoo.cfg文件内容如下:

  1. # The number of milliseconds of each tick  
  2. #tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。  
  3. #默认情况下最小的会话超时时间为两倍的tickTime  
  4. tickTime=2000  
  5. # The number of ticks that the initial   
  6. # synchronization phase can take  
  7. #zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时,   
  8. #follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.  
  9. initLimit=5  
  10. # The number of ticks that can pass between   
  11. # sending a request and getting an acknowledgement  
  12. #该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.  
  13. syncLimit=2  
  14. # the directory where the snapshot is stored.  
  15. # do not use /tmp for storage, /tmp here is just   
  16. # example sakes.  
  17. #dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。  
  18. dataDir=D:\\zookeeper-3.4.8\\data  
  19. #dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录  
  20. dataLogDir=D:\\zookeeper-3.4.8\\log  
  21. # the port at which the clients will connect  
  22. #clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。  
  23. clientPort=2181  
  24. # the maximum number of client connections.  
  25. # increase this if you need to handle more clients  
  26. #maxClientCnxns:限制连接到 ZooKeeper 的客户端的数量  
  27. #maxClientCnxns=60  
  28. #  
  29. # Be sure to read the maintenance section of the   
  30. # administrator guide before turning on autopurge.  
  31. #  
  32. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance  
  33. #  
  34. # The number of snapshots to retain in dataDir  
  35. #autopurge.snapRetainCount=3  
  36. # Purge task interval in hours  
  37. # Set to “0” to disable auto purge feature  
  38. #autopurge.purgeInterval=1  

需要在zookeeper-3.4.8文件夹下新建data和log文件夹

启动zookeeper

cmd命令进入zookeeper-3.4.8\bin目录,启动zkServer.cmd

或者直接双击zkServer.cmd启动,双击后窗口不会关闭,如果关闭了表示未启动成功

如果jdk环境变量设置了,但是提示JAVA_HOME找不到,则需要修改该目录下的zkEnv.cmd关于JAVA_HOME的一部分

  1. set JAVA_HOME=“D:\Program Files\Java\jdk1.7.0_75”  
  2.   
  3. if not defined JAVA_HOME (  
  4.   echo Error: JAVA_HOME is not set.  
  5.   goto :eof  
  6. )  
  7.   
  8. if not exist %JAVA_HOME%\bin\java.exe (  
  9.   echo Error: JAVA_HOME is incorrectly set.  
  10.   goto :eof  
  11. )  
  12.   
  13. set JAVA=%JAVA_HOME%\bin\java  
set JAVA_HOME="D:\Program Files\Java\jdk1.7.0_75"

if not defined JAVA_HOME (
  echo Error: JAVA_HOME is not set.
  goto :eof
)

if not exist %JAVA_HOME%\bin\java.exe (
  echo Error: JAVA_HOME is incorrectly set.
  goto :eof
)

set JAVA=%JAVA_HOME%\bin\java

伪集群模式

所谓伪集群, 是指在单台机器中启动多个zookeeper进程,,并组成一个集群, 以启动3个zookeeper进程为例。

把zookeeper-3.4.8文件夹复制2份,这三个文件夹分别命名为zookeeper-3.4.8-1、zookeeper-3.4.8-2、zookeeper-3.4.8-3

下面是zookeeper-3.4.8-1/conf文件夹下的zoo.cfg文件中配置的几个选项:

  1. dataDir=D:\\zookeeper-3.4.8-1\\data  
  2. dataLogDir=D:\\zookeeper-3.4.8-1\\log  
  3. clientPort=2181  
  4. server.1=127.0.0.1:8281:7271  
  5. server.2=127.0.0.1:8282:7272  
  6. server.3=127.0.0.1:8283:7273  
dataDir=D:\\zookeeper-3.4.8-1\\data
dataLogDir=D:\\zookeeper-3.4.8-1\\log
clientPort=2181
server.1=127.0.0.1:8281:7271
server.2=127.0.0.1:8282:7272
server.3=127.0.0.1:8283:7273

server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同。

参照zookeeper-3.4.8-1/conf文件夹下zoo.cfg文件,分别配置zookeeper-3.4.8-2/conf/zoo.cfg、zookeeper-3.4.8-3/conf/zoo.cfg文件,只需要修改dataDir、dataLogDir、clientPort即可。

在三个zoo.cfg文件中设置的dataDir目录下新建myid文件,写入一个数字, 该数字表示这是第几号server,该数字必须和zoo.cfg文件中的server.X中的X对应。如D:\\zookeeper-3.4.8-1\\data\\myid文件中数字是1。

然后就是分别启动三个zookeeper了。

集群模式

集群模式的配置和伪集群基本一致.
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样。

下面是一个示例:

  1. tickTime=2000  
  2. initLimit=5  
  3. syncLimit=2  
  4. dataDir=D:\\zookeeper-3.4.8\\data  
  5. dataLogDir=D:\\zookeeper-3.4.8\\log  
  6. clientPort=2181  
  7. server.21=192.168.0.1:8280:7270  
  8. server.22=192.168.0.2:8280:7270  
  9. server.23=192.168.0.3:8280:7270  
tickTime=2000
initLimit=5
syncLimit=2
dataDir=D:\\zookeeper-3.4.8\\data
dataLogDir=D:\\zookeeper-3.4.8\\log
clientPort=2181
server.21=192.168.0.1:8280:7270
server.22=192.168.0.2:8280:7270
server.23=192.168.0.3:8280:7270

示例中部署了3台zookeeper server,分别部署在192.168.0.1、192.168.0.2、192.168.0.3上。 需要注意的是,各server的dataDir目录下的myid文件中的数字必须不同。

192.168.0.1server的myid为21,192.168.0.2server的myid为22,192.168.0.3server的myid为23。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值