cassandra在Windows上注册服务

来源:互联网 发布:神策分析数据分析技术 编辑:程序博客网 时间:2024/06/06 21:42

cassandra在Windows上注册服务

昨天有朋友请教cassandra在windows上注册服务的问题,百度没有找到相关的解决办法,所以只能自己搞下,这里分享一下解决的方法。

1.前提条件

配置好Cassandra,能够通过cassandra.bat直接运行启动。这是百度上所有教程的终点,不过总不能每次都要运行bat启动,一直顶着个黑框吧。如果能做成服务岂不是更好,这就是这篇博客的起点。

2.查看cassandra.bat

用编辑器打开cassandra.bat查看,能够看到以下内容:

...set ARG=%1set INSTALL="INSTALL"set UNINSTALL="UNINSTALL"...:doInstallOperationset SERVICE_JVM="cassandra"...

与tomcat一样,是可以直接通过bat脚本注册服务的,需要加install或者uninstall参数,服务名就叫‘cassandra’。

3.通过命令行注册服务

在cassandra根目录打开cmd命令行窗口,或cd到该目录下。执行:

cassandra install

却发现报错了,服务里也没有找到cassandra服务,怎么回事?

cassandra install出错

4.再次查看cassandra.bat

再次打开cassandra.bat查看,发现有如下字段:

...set PATH_PRUNSRV=%CASSANDRA_HOME%\bin\daemon\...if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv...echo trying to delete service if it has been created already"%PRUNSRV%" //DS//%SERVICE_JVM%...echo Installing %SERVICE_JVM%. If you get registry warnings, re-run as an Administrator"%PRUNSRV%" //IS//%SERVICE_JVM%echo Setting the parameters for %SERVICE_JVM%rem set PR_CLASSPATH=%CASSANDRA_CLASSPATH%"%PRUNSRV%" //US//%SERVICE_JVM% ^...

仔细看三个echo的字段,不就是上面截图中每次报“系统找不到指定的路径”前的字段,再看发现每次都要执行“PRUNSRV”命令,上面的PATH_PRUNSRV中定义了prunsrv的路径,我们到bin下查看一下,发现并没有脚本中的daemon文件夹。

5.找到prunsrv.exe并放到daemon里

这里我们知道prunsrv.exe是一个用来管理服务的程序,能够通过它来实现服务注册、卸载等,具体内容可百度关键字“prunsrv.exe”。

现在就清楚了,cassandra本身的bat里提供了通过prunsrv.exe来注册服务的功能,但是没有提供prunsrv.exe,需要我们从网上手动下载。

可以从这里下载:

http://archive.apache.org/dist/commons/daemon/binaries/windows/

注意:如果你的操作系统是64位的,则需要用amd64\prunsrv.exe

现在我们在cassandra的bin目录里创建一个daemon文件夹,并将对应的prunsrv.exe拷贝到该文件夹中。

在bin创建daemon,并拷贝prunsrv.exe到其中

6.再次尝试注册

再次在cmd命令行执行命令

cassandra install

能够发现注册成功了,没有了找不到文件的报错:

cassandra install成功

在服务中也能看到cassandra服务了:

cassandra服务

可以设置为自动启动。这样在每次启动计算机的时候就会自动启动cassandra服务了。

7.验证与卸载

完事之后到底能不能用还需要我们验证一下,用telnet命令吧,在命令行执行:

net start cassandratelnet 本机IP 9042

试一下能不能通,9042是默认配置,如果修改则自行修改此处端口号,能通则没问题了,不能通则看看服务是否已正确启动,检查自己的配置吧,不在此文主题。

卸载服务于注册服务类似,除了普遍的sc命令,可以通过cassandra.bat脚本卸载,在bin目录执行如下命令即可:

cassandra uninstall
0 0