Windows里正确安装Zookeeper以服务运行

113 阅读2分钟

1.zookeeper下载地址:

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/ 

2.修改zookeeper-3.4.8\conf下的:zoo_sample.cfg文件名,改为:zoo.cfg

3. 主要修改配置中的 dataDir ,根据自己实际修改即可,如下 比如我这里是

dataDir=D:\SoftWare\zookeeper-3.4.8\data

4. 下载的Zookeeper是.cmd的批处理命令运行的,默认没有提供以windows服务的方式运行的方案!!! 为此,本文下载prunsrv 来作为zookeeper的服务管理。 将zookeeper做成 windows 服务,避免每次关闭后,再启动还需要使用cmd。

5. 下载prunsrv

下载地址:archive.apache.org/dist/common…  ,找到commons-daemon-1.0.15-bin-windows.zip

6. 解压后复制以下文件

注意:64位系统的机器用amd64/prunsrv.exe 
(1)复制 commons-daemon-1.0.15-bin-windows/amd64/prunsrv.exe 至 zookeeper-3.4.8\bin目录下
这是做服务的执行程序

(2)复制 commons-daemon-1.0.15-bin-windows/prunmgr.exe 至 zookeeper-3.4.8\bin目录下
监控服务配置及运行的程序

7. 为Zookeeper配置环境变量

添加ZOOKEEPER_SERVICE, ZOOKEEPER_HOME两个环境变量

ZOOKEEPER_SERVICE:服务名称(不要有中文),我这里取的是,命名为zookeeper_service

ZOOKEEPER_HOME:设置到zookeeper-3.4.8目录下

8. 新建 zkServerStop.cmd 文件

在zookeeper-3.4.8\bin目录下添加一个 zkServerStop.cmd 文件.

(注:cmd文件或者下面的bat文件,我们都可以先创建一个文本文件,然后把下面的内容copy进去,然后修改文本文件的后缀名即可)

@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

9 新建一个批处理安装文件install.bat

(注: install.bat 文件也需要放在zookeeper-3.4.8\bin 目录下才可以)

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

10 最后在cmd中以管理员身份运行install.bat (注:其实我想说在zookeeper-3.4.8\bin目录下,双击install.bat文件就可以了,然后进入服务管理,就可以看到相应的服务了,不过这时候还没启动,右击启动即可。)

11. 查看: 开始→运行(Windows+R快捷键也能调出运行) 输入:services.msc确定

12. 如果你想彻底删除这个服务,则

 开始”——“运行”——“regedit”)然后依次打开HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services