windows Zookeeper本地服務化


ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。

在windows環境使用Zookeeper時,需要在命令行調用zookeeper提供的相關的cmd腳本,這樣要經常進行zookeeper服務的開啟和關閉會比較麻煩,所以這篇博客提供了將Zookeeper注冊成windows服務的方法,接下來進行方法的演示:

1.下載並安裝zookeeper,下載prunsrv,並解壓,這里提供了我在csdn上傳的zookeeper和prunsrv的網址:

https://download.csdn.net/download/qq_28169869/10880956

https://download.csdn.net/download/qq_28169869/10880975

 

2.找到commons-daemon-1.0.15-bin-windows目錄下的prunsrv.exe,復制到zookeeper目錄的bin文件夾下,如果windows系統是64位的,復制 amd64 文件夾下的prunsrv.exe。

 

3.找到commons-daemon-1.0.15-bin-windows目錄下的prunmgr.exe,復制到zookeeper目錄的bin文件夾下。

 

4.配置環境變量 ZOOKEEPER_SERVICE,值為zookeeper_service,zookeeper_service是給zookeeper服務起的服務名;配置環境變量ZOOKEEPER_HOME,值為zookeeper的目錄。

 

5.在zookeeper的bin目錄下添加zkServerStop.cmd和install.bat,zkServerStop.cmd用來停止zookeeper的windows服務。

@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
 install.bat用來安裝zookeeper的windows服務
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

 從install.bat中可以看到,安裝服務使用bin中的zkServer.cmd和zkServerStop.cmd,用來啟動和停止zookeeper的服務,可以根據需要對這兩個文件進行配置。

 

 

9.在服務中啟動zookeeper服務,我在zkServer.cmd中使用了zoo.cfg的配置,客戶端端口使用的是2180。

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\zookeeper\\server\\zookeeper-data\\server
dataLogDir=D:\\zookeeper\\server\\zookeeper-log\\server
clientPort=2180
server.1=localhost:2890:3890

啟動zookeeper的windows服務,然后打開一個cmd,轉到zookeeper的bin目錄,輸入 zkCli.cmd -timeout 100 -server 127.0.0.1:2180,使用zookeeper提供的客戶端連接zookeeper服務。

這樣就可以正常連接到zookeeper服務了,可以用命令對zookeeper節點進行查看和操作

 

10.如果想卸載這個服務,需要刪除注冊表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services下的Zookeeper(zookeeper_service)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM