windows Zookeeper本地服务化

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

在windows环境使用Zookeeper时,需要在命令行调用zookeeper提供的相关的cmd脚本,这样要经常进行zookeeper服务的开启和关闭会比较麻烦,所以这篇博客提供了将Zookeeper注册成windows服务的方法,接下来进行方法的演示:

1.下载并安装zookeeper,下载prunsrv,并解压,这里提供了我在csdn上传的zookeeper和prunsrv的网址:

https://download.csdn.net/download/qq_28169869/10880956

https://download.csdn.net/download/qq_28169869/10880975

 

2.找到commons-daemon-1.0.15-bin-windows目录下的prunsrv.exe,复制到zookeeper目录的bin文件夹下,如果windows系统是64位的,复制 amd64 文件夹下的prunsrv.exe。

 

3.找到commons-daemon-1.0.15-bin-windows目录下的prunmgr.exe,复制到zookeeper目录的bin文件夹下。

 

4.配置环境变量 ZOOKEEPER_SERVICE,值为zookeeper_service,zookeeper_service是给zookeeper服务起的服务名;配置环境变量ZOOKEEPER_HOME,值为zookeeper的目录。

 

5.在zookeeper的bin目录下添加zkServerStop.cmd和install.bat,zkServerStop.cmd用来停止zookeeper的windows服务。

@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

 install.bat用来安装zookeeper的windows服务

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

 从install.bat中可以看到,安装服务使用bin中的zkServer.cmd和zkServerStop.cmd,用来启动和停止zookeeper的服务,可以根据需要对这两个文件进行配置。

 

 

9.在服务中启动zookeeper服务,我在zkServer.cmd中使用了zoo.cfg的配置,客户端端口使用的是2180。

tickTime=2000initLimit=10syncLimit=5dataDir=D:\\zookeeper\\server\\zookeeper-data\\serverdataLogDir=D:\\zookeeper\\server\\zookeeper-log\\serverclientPort=2180server.1=localhost:2890:3890

启动zookeeper的windows服务,然后打开一个cmd,转到zookeeper的bin目录,输入 zkCli.cmd -timeout 100 -server 127.0.0.1:2180,使用zookeeper提供的客户端连接zookeeper服务。

这样就可以正常连接到zookeeper服务了,可以用命令对zookeeper节点进行查看和操作

 

10.如果想卸载这个服务,需要删除注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services下的Zookeeper(zookeeper_service)

 

相关文章