windows Zookeeper本地服务化

Posted xhj123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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%inzkServer.cmd ^
        --StopPath=%ZOOKEEPER_HOME% ^
        --StopImage=%ZOOKEEPER_HOME%inzkServerStop.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=2000
initLimit=10
syncLimit=5
dataDir=D:\\zookeeper\\server\\zookeeper-data\\server
dataLogDir=D:\\zookeeper\\server\\zookeeper-log\\server
clientPort=2180
server.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_MACHINESYSTEMControlSet001Services下的Zookeeper(zookeeper_service)
技术分享图片

 

以上是关于windows Zookeeper本地服务化的主要内容,如果未能解决你的问题,请参考以下文章

在本地预览可以,上传到服务器上怎么就一片空白?

(转)mac 搭建基于RTMP的本地Nginx服务器报错homebrew/nginx was deprecated. This tap is now empty as all its form(代码片

Zookeeper安装集群配置

Zookeeper安装集群配置

Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(代码片

zookeeper启动