轉正:http://www.cnblogs.com/mrluo735/p/5345879.html
1.下載的Zookeeper是.cmd的批處理命令運行的,默認沒有提供以windows服務的方式運行的方案
下載地址:http://zookeeper.apache.org/
2.下載prunsrv
下載地址:http://archive.apache.org/dist/commons/daemon/binaries/windows/
3.解壓後複製文件
64位機器用amd64/prunsrv.exe
a. 複製 commons-daemon-1.0.15-bin-windows/amd64/prunsrv.exe 至 zookeeper-3.4.8\bin目錄下
這是做服務的執行程序
b. 複製 commons-daemon-1.0.15-bin-windows/prunmgr.exe 至 zookeeper-3.4.8\bin目錄下
監控服務配置及運行的程序
4.配置環境變量
添加ZOOKEEPER_SERVICE, ZOOKEEPER_HOME兩個環境變量
ZOOKEEPER_SERVICE:服務名稱(不要有中文)
ZOOKEEPER_HOME:設置到zookeeper-3.4.8目錄下
5.生成zoo.cfg
在zookeeper-3.4.8\conf目錄下複製一份zoo_sample.cfg文件,並重命名爲zoo.cfg
6.在zookeeper-3.4.8\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
7.新建一個批處理安裝文件: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
8. 新建一個bat: unstall.bat 用於卸載 內容如下:
prunsrv.exe "//DS//%ZOOKEEPER_SERVICE%
最後在cmd中以管理員身份運行install.bat就OK了。
Windows系統下zookeeper啓動報錯JAVA_HOME is incorrectly set
轉正:https://blog.csdn.net/vtopqx/article/details/78815482
首先根據錯誤提示,JAVA_HOME配置錯誤,找不到java環境。
主要原因:
在Windows下java默認安裝裝在C:\Program Files\Java\jdk1.xxx下,路徑中存在空格,啓動時會找不到正確的路徑,在JAVA_HOME上加""即可
在zookeeper目錄bin下的zkEnv.cmd中
新增:set JAVA_HOME
- set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.8.0_121"