20

如何停止在我的 mac os x 的单个节点上运行的 cassandra 服务器?Cassandra 脚本没有 -stop 选项。除了重新启动mac os x之外,唯一的方法是执行“ps”并找到具有cassandra参数的java进程并使用kill -9来终止该进程。

但是在那之后尝试重新启动cassandra仍然会抛出

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7199; nested exception is: java.net.BindException: Address already in use.

有人看过吗?有什么快速的解决方案吗?

4

7 回答 7

27

如果您已经通过自制软件安装了 cassandra,请使用brew info cassandra它,它会告诉您如何使用 launchctl 加载/卸载 cassandra。这对我来说比这里的其他答案更好。

命令

brew info cassandra查看 cassandra 的状态

brew services start cassandra启动 cassandra

brew services stop cassandra阻止卡桑德拉

于 2016-04-19T19:05:17.510 回答
23

编辑:我实际上发现这更有用。

打开终端并输入:

$ ps -ax | grep 卡桑德拉

为您提供一个名为 cassandra 的 pid 列表。

使用 PID 号杀死进程,例如这里是一个返回值:708 ttys000 0:03.10 /usr/bin/java -ea -javaagent:Downloads/Web/Cassandra/dsc-cassandra-1.1.0/bin/

$杀708


旧帖:

发表评论后,我在 BIN 中找到了一个停止服务器脚本。

如果要使用该脚本,则必须打开脚本并注释掉代码。但这是脚本中所说的。

 echo "please read the stop-server script before use"

    # if you are using the cassandra start script with -p, this
    # is the best way to stop:

     kill `cat <pidfile>` 


    # otherwise, you can run something like this, but
    # this is a shotgun approach and will kill other processes
    # with cassandra in their name or arguments too:

    # user=`whoami`
    # pgrep -u $user -f cassandra | xargs kill -9
于 2012-06-05T01:22:39.320 回答
20

在其他地方找到了这个似乎可行的解决方案!

pkill -f 'java.*cassandra'

值得一试!这适用于我拥有的 Ubuntu。不在 MacOS 上!

在 Mac 上还有一个是ps -af | grep cassandra然后使用 kill。但是,有时它不起作用!

于 2012-07-05T06:31:05.950 回答
4

您也可以使用 Cassandra 的 nodetool 命令。

nodetool drain

该文档没有说明它关闭的任何内容,但它对我来说可以在单个节点本地服务器上可靠地工作。但是,通常需要几秒钟才能完成关机。

于 2013-10-21T18:29:03.620 回答
4

另一种方法是查看哪个 OS 进程打开了 Cassandra 端口,如下所示:

lsof -i :9160

样本输出:

COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    30253 aswan  214u  IPv4 0xffffff80190dcc20      0t0  TCP *:netlock1 (LISTEN)

然后您可以在该进程上使用“kill -9 [pid]”。

于 2012-07-02T05:54:20.173 回答
0

杀死 -9 ` acx | grep -i cassandra | awk '{print$1}'`

于 2013-11-12T13:51:45.643 回答
0

我正在使用新的 Datastax Enterprise 5.0 版本,它至少提供了一个足够简单的命令来停止 Cassandra:

dse cassandra-stop

关闭需要一些时间,但它对我有用。

于 2016-08-23T13:23:15.133 回答