Windows下之後臺服務的方式配置ZooKeeper

這裏介紹在Windows環境下安裝和配置ZooKeeper,僅適用於在開發環境下的單機調試場景,勿用於正式的生產環境中。重點是將ZooKeeper配置成Windows服務,開機就自動啓動ZooKeeper服務,無需手動啓動。固然,我也參考了網上的一些博客,但發如今Win10系統下中止服務時會報「發生系統錯誤 1067」的錯誤,感受不爽,將中止服務腳本重寫了一下,不會再出現1067的錯誤警告框。html

ZooKeeper下載
apache

官網下載地址:zookeeper.apache.org/releases.ht…windows


在我本機的開發環境下,我使用的ZooKeeper版本是:3.4.14。
bash

ZooKeeper安裝

一、在安裝ZooKeeper以前,須要先安裝JDK環境,並設置環境變量「JAVA_HOME」。app

二、將下載到的ZooKeeper壓縮包解壓,並進入conf配置文件目錄,例如:E:\dev-runtimes\zookeeper-3.4.10\conf。ui

三、複製「zoo_sample.cfg」,並重命名爲「zoo.cfg」。編碼

四、編輯「zoo.cfg」文件,設置ZooKeeper的數據存儲目錄(dataDir)和日誌目錄(dataLogDir),通常都設置在ZooKeeper的本目錄裏,以下:spa

dataDir=E:\\dev-runtimes\\zookeeper-3.4.10\\data操作系統

dataLogDir=E:\\dev-runtimes\\zookeeper-3.4.10\\log插件

注意路徑中的雙斜槓!

ZooKeeper的安裝到此完成。  

ZooKeeper服務配置 

一、下載Apache出品的通用後臺進程服務插件包:commons-daemon,

下載地址:archive.apache.org/dist/common…,目前最新版本是1.1.0。

 二、解壓commons-daemon-1.1.0-bin-windows.zip,複製prunmgr.exe、prunsrv.exe到ZooKeepe安裝路徑的bin目錄下。注意,若是你的操做系統是64位的,則複製amd64目錄下的prunsrv.exe。 


三、在ZooKeepe根目錄下建立服務安裝腳本:zk-service-install.bat

@echo off
 
REM #
REM # 說明:在Windows系統中安裝ZooKeeper服務,實現以服務的方式啓動ZooKeeper
REM # 注意:此腳本必須拷貝到ZooKeeper的根目錄,不然運行報錯
REM # ZK_HOME: ZooKeeper安裝目錄
REM # ZK_DATA_DIR: ZooKeeper數據目錄
REM # ZK_SERVICE_NAME: ZooKeeper服務名
REM # DATE: 2019-11-01 15:37:55
REM # Author: 萬里
REM #
REM # 服務啓動命令:net start ZooKeeper
REM # 服務中止命令:net stop ZooKeeper
 
CD /d %~dp0
SET ZK_HOME=%CD%
SET ZK_DATA_DIR=%ZK_HOME%\data
SET ZK_LOG_DIR=%ZK_HOME%\log
SET ZK_SERVICE_NAME=ZooKeeper
if not exist %ZK_DATA_DIR% mkdir %ZK_DATA_DIR%
if not exist %ZK_LOG_DIR% mkdir %ZK_LOG_DIR%
 
:: 安裝ZooKeeper的Windows服務
%ZK_HOME%\bin\prunsrv.exe "//IS//%ZK_SERVICE_NAME%" ^
--DisplayName="%ZK_SERVICE_NAME%" ^
--Description="%ZK_SERVICE_NAME%" ^
--Startup=auto ^
--StartMode=exe ^
--StartPath=%ZK_HOME% ^
--StartImage=%ZK_HOME%\bin\zkServer.cmd ^
--StopPath=%ZK_HOME%\ ^
--StopImage=%ZK_HOME%\zk-stop.bat ^
--StopMode=exe ^
--StopTimeout=5 ^
--LogPath=%ZK_LOG_DIR% ^
--LogPrefix=zookeeper-wrapper ^
--PidFile=zookeeper.pid ^
--LogLevel=Info ^
--StdOutput=auto ^
--StdError=auto
 
pause複製代碼

四、在ZooKeepe根目錄下建立服務卸載腳本:zk-service-remove.bat

@echo off
 
REM #
REM # 說明:卸載ZooKeeper的Windows服務
REM # 注意:此腳本必須拷貝到ZooKeeper的根目錄,不然運行報錯
REM # DATE: 2019-11-01 15:29:50
REM # Author: 萬里
REM #
 
CD /d %~dp0
%CD%\bin\prunsrv.exe //DS//ZooKeeper複製代碼

五、在ZooKeepe根目錄下建立服務中止腳本:zk-stop.bat

@echo off
 
REM #
REM # 說明:以殺進程的方式中止ZooKeeper服務
REM # 注意:此腳本必須拷貝到ZooKeeper的根目錄,不然運行報錯
REM # DATE: 2019-11-01 16:51:16
REM # Author: 萬里
REM #
 
setlocal
 
CD /d %~dp0
 
:: 以殺進程的方式中止ZooKeeper服務
SET /p zkPID=<%CD%\log\zookeeper.pid
taskkill /PID %zkPID% /T /F
 
endlocal複製代碼

特別注意上述三個bat腳本的字符編碼要設置成「ANSI」編碼,否則在執行腳本時會出現亂碼。


六、以管理員身份運行腳本「zk-service-install.bat」,而後打開服務管理器,啓動ZooKeeper服務


七、查看ZooKeeper的服務端口2182是否處於偵聽狀態


至此,將ZooKeeper安裝成Windows系統服務的配置工做完成!

相關文章
相關標籤/搜索