zookeeper做成windows服务启动

zookeeper下载安装

首先去官网下载zookeeper
在这里插入图片描述

注意:zookeeper的安装路径一定不要有空格,
作者之前就是因为安装在D:\Program Files\zookeeper-3.4.10路径下,
路径中有空格(Program Files中间有空格)解决了很长时间,想尽各种办法,最后发现TMD的是空格原因

配置环境变量

添加ZOOKEEPER_SERVICE, ZOOKEEPER_HOME两个环境变量

//服务名称(不要有中文)
ZOOKEEPER_SERVICE:zkServer
//设置到zookeeper-3.4.10目录下 
ZOOKEEPER_HOME:D:\zookeeper-3.4.10

生成zoo.cfg

在zookeeper-3.4.10\conf目录下复制一份zoo_sample.cfg文件,并重命名为zoo.cfg
修改zoo.cfg文件里面的路径

//存放内存数据库快照的目录
dataDir=D:/zookeeper-3.4.10/data
//存放是事务日志目录
dataLogDir=D:/zookeeper-3.4.10/log

下载prunsrv

首先去Apache官网下载prunsrv
在这里插入图片描述
解压之后将prunmgr.exe和prunsrv.exe2个可执行文件复制到zookeeper的bin目录下

注意:64位机器用amd64/prunsrv.exe

在这里插入图片描述

新建install.bat

在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

在zookeeper的bin目录下新建一个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

启动服务

已管理员运行cmd,进入D:/zookeeper-3.4.10/bin目录下运行install.bat,(注意:运行前请确保zookeeper服务已经关闭
下图表示服务已经正常启动
在这里插入图片描述

删除服务

已管理员运行cmd,输入sc delete zkServer回车即可删除服务。

猜你喜欢

转载自blog.csdn.net/u013254183/article/details/89708810