Windows下安装zookeeper

Windows下安装zookeeper

参考资源

windows环境下安装zookeeper(单机版)

zookeeper做成windows服务启动

前置条件

  • jdk,至于需要哪个版本没有查到准确的匹配关系,但建议jdk的版本不要太高,本人在安装的过程中使用的jdk8。

安装包

版本

  • 3.7.1

官网地址

官方下载地址

百度网盘

链接:https://pan.baidu.com/s/1ncCgq7VtRYqIY3tq-jmJ4w
提取码:piy2

安装步骤

解压

​ 获取apache-zookeeper-3.7.1-bin.tar.gz文件后,解压到计划安装的目录,主要安装路径不要有中文,也不要有空格,例如Program Files这样的路径。这里将压缩包解压到C:\kafka\apache-zookeeper-3.7.1-bin路径下

新建并修改zoo.cfg配置文件

​ 到apache-zookeeper-3.7.1-bin\conf目录下复制一份zoo_sample.cfg文件并重命名为zoo.cfg。

​ 修改或者新增配置项:

# 存放内存数据库快照的目录
dataDir=C:\\kafka\\apache-zookeeper-3.7.1-bin\\data
# 存放事务日志目录
dataLogDir=C:\\kafka\\apache-zookeeper-3.7.1-bin\\logs
# AdminServer端口
admin.serverPort=7070

注意:

​ zookeeper服务启动时会启动一个AdminServer的服务,默认端口占用8080,我这里有其他服务占用了该端口就添加了该配置,修改了该端口号,不冲突就行。

启动服务

​ 进入bin目录,双击zkServer.cmd启动服务。

验证服务

​ 保持zkServer窗口打开状态,进入bin目录,双击zkCli.md,打开客户端窗口,直到出现Welcome to Zookeeper!字样,说明安装成功。

注册Windows系统服务

​ 虽然通过双击zkServer.cmd脚本即可启动zookeeper服务,但是每次都得去运行该脚本,不小心被人关闭窗口还会带来麻烦,这里向大神学习了将启动脚本注册成Windows系统服务方法,便于后期的使用。

​ 我在使用的过程中对比了通过使用prunsrv和nssm工具分别将zookeeper注册成windows服务,发现nssm更简单些,这里一并记录下来。

prunsrv方式

安装包
版本
  • 1.3.1
官网地址

官方下载地址

百度网盘

​ 链接:https://pan.baidu.com/s/1fD5Htj9eOT3ztRm84V8AHQ

​ 提取码:fgzm

安装步骤

准备prunsrv

​ 完成下载之后,解压并将prunmgr.exe(监控服务配置及运行的程序)和prunsrv.exe(做服务的执行程序)2个执行文件复制到zookeeper的bin目录下

注意:
    64位机器使用amd64/prunsrv.exe
配置环境变量

添加ZOOKEEPER_SERVICE和ZOOKEEPER_HOME两个环境变量

# 服务名称(不要有中文)
ZOOKEEPER_SERVICE:zkServer
# zookeeper安装目录
ZOOKEEPER_HOME:C:\kafka\apache-zookeeper-3.7.1-bin
新建注册服务脚本

​ 在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
新建停止服务脚本

​ 在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,进入zookeeper的bin目录下,执行install.bat脚本(在执行脚本前请确保zookeeper服务已经关闭)。

c:\windows\system32>cd C:\kafka\apache-zookeeper-3.7.1-bin\bin
C:\kafka\apache-zookeeper-3.7.1-bin\bin>install.bat

​ 安装完成后可以通过检查系统服务中是否存在名为Zookeeper(zkServer)的服务确认是否完成安装。

启动服务
# 在开始菜单-运行-services.msc,在启动的服务对话框中查询Zookeeper(zkServer)服务,并启动服务
停止服务
# 使用下面两种方式停止服务的时候均会报一个错误,但zkServer服务已经停止了
# 方式1
# 在开始菜单-运行-services.msc,在启动的服务对话框中查询Zookeeper(zkServer)服务,并停止服务

# 方式2
运行cmd,进入到zookeeper的bin目录下执行下列命令
cd C:\kafka\apache-zookeeper-3.7.1-bin\bin
zkServerStop.cmd

nssm方式

安装包

链接:https://pan.baidu.com/s/11R9usQn-3-kT0JKBfiv8TA
提取码:9edu

注册服务

​ 将NSSM软件解压到指定目录下后再以管理员身份启动cmd窗口后,进入到该目录并通过命令启动nssm程序。

c:\windows\system32>cd G:\01work\00software\nssm-2.24\win64
G:\01work\00software\nssm-2.24\win64>nssm install
# 执行上述命令后会弹出一个NSSM service installer窗口
# 在Application标签页的Path栏输入C:\kafka\apache-zookeeper-3.7.1-bin\bin\zkServer.cmd
# 在Application标签页的Startup directory栏输入C:\kafka\apache-zookeeper-3.7.1-bin\bin
# 在Application标签页的Arguments栏空置即可(无启动参数)
# 在Application标签页的Service name栏写上服务名称zkServer
# 执行Install service操作
Service "zkServer" installed successfully!
# 看到上述提示信息后即表示服务安装成功
# 可以通过系统菜单-运行-services.msc,调出服务窗口后启动zkServer服务再参考上文中的【验证服务】章节确认服务是否成功
启动服务
# 在开始菜单-运行-services.msc,在启动的服务对话框中查询zkServer服务,并启动服务
停止服务
# 在开始菜单-运行-services.msc,在启动的服务对话框中查询zkServer服务,并停止服务

删除服务

#以管理员身份运行cmd,执行下列命令即可删除服务
sc delete zkServer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值