Zookeeper安装入门并配置为Windows服务开机自动启动
1、概述
zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
zookeeper=文件系统+监听通知机制
2、安装
-
官网下载zookeeper压缩包
http://mirrors.hust.edu.cn/apache/zookeeper/
-
解压到自定义路径(我的路径:D:\zookeeper\zookeeper-3.4.11),并将 zookeeper-3.4.11\conf\zoo_sample.cfg 文件复制一份到同路径下并重命名为zoo.cfg,因为zookeeper默认使用的文件名是zoo.cfg。
-
修改zoo.cfg日志文件的地址,dataDir=…/data (路径自定义,我的是上级的data文件夹下)
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=../data # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
- tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
- dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
- dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录
- clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
-
双击启动zookeeper-3.4.11/bin/zkServer.cmd,看看是否启动成功。
3、配置成Windows服务
-
下载zookeeper服务插件(zip包)
http://archive.apache.org/dist/commons/daemon/binaries/windows/
-
解压后把prunsrv.exe、prunmgr.exe复制到zookeeper的bin路径下
-
新建一个install.bat文件,用于注册服务
prunsrv.exe "//IS//%ZOOKEEPER_SERVICE%" ^ --DisplayName="Zookeeper (%ZOOKEEPER_SERVICE%)" ^ --Description="Zookeeper (%ZOOKEEPER_SERVICE%)" ^ --Startup=auto --StartMode=exe ^ --StartPath=%ZOOKEEPER_HOME% ^ --StartImage=%ZOOKEEPER_HOME%\bin\zkServer.cmd ^ --StopPath=%ZOOKEEPER_HOME%\ ^ --StopImage=%ZOOKEEPER_HOME%\bin\zkServerStop.cmd ^ --StopMode=exe --StopTimeout=5 ^ --LogPath=%ZOOKEEPER_HOME% --LogPrefix=zookeeper-wrapper ^ --PidFile=zookeeper.pid --LogLevel=Info --StdOutput=auto --StdError=auto
-
新建一个zkServerStop.cmd文件,用于停止服务。
@echo off setlocal TASKLIST /svc | findstr /c:"%ZOOKEEPER_SERVICE%" > %ZOOKEEPER_HOME%\zookeeper_svc.pid FOR /F "tokens=2 delims= " %%G IN (%ZOOKEEPER_HOME%\zookeeper_svc.pid) DO ( @set zkPID=%%G ) taskkill /PID %zkPID% /T /F del %ZOOKEEPER_HOME%/zookeeper_svc.pid endlocal
-
配置zookeeper的环境变量,新建ZOOKEEPER_HOME和ZOOKEEPER_SERVICE,前面是你安装zookeeper的bin路径,后面是你server的名称。
-
在cmd中以管理员启动install.bat文件。
-
查看zookeeper服务是否启动成功(启动之前最好关闭cmd启动的zookeeper)。