zoukankan      html  css  js  c++  java
  • 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%inzkServer.cmd ^
            --StopPath=%ZOOKEEPER_HOME% ^
            --StopImage=%ZOOKEEPER_HOME%inzkServerStop.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_MACHINESYSTEMControlSet001Services下的Zookeeper(zookeeper_service)
  • 相关阅读:
    woj 1574
    UESTC 594 我要长高 dp单调队列
    HDU 3401 Trade dp 单调队列优化
    HDU 2844 Coins 多重背包
    2-1
    1-2
    1-1
    12-1
    9-1
    14-8
  • 原文地址:https://www.cnblogs.com/xhj123/p/10185454.html
Copyright © 2011-2022 走看看