如何阻止cassandra服务器在我的mac os x中的单个节点上运行? 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
。
有人见过吗?有什么快速的解决方案吗?
答案 0 :(得分:18)
在其他地方找到了这个似乎有用的解决方案!
pkill -f 'java.*cassandra'
值得一试! 这适用于我有的Ubuntu。不在MacOS上!
在Mac上,还有ps -af | grep cassandra
然后使用kill。但是,它有时不起作用!
答案 1 :(得分:17)
编辑:我实际上发现这更有用。
打开终端并输入:
$ ps -ax | grep cassandra
为您提供了一个名为cassandra的pids列表。
使用PID号来终止进程,例如这里是一个返回值: 708 ttys000 0:03.10 / usr / bin / java -ea -javaagent:Downloads / Web / Cassandra / dsc-cassandra-1.1.0 / bin /
$ kill 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
答案 2 :(得分:14)
如果您已通过自制软件安装cassandra,请使用brew info cassandra
,它会告诉您如何使用launchctl加载/卸载cassandra。这对我来说比这里的其他答案更好。
命令
brew info cassandra
查看cassandra的状态
brew services start cassandra
启动cassandra
brew services stop cassandra
停止cassandra
答案 3 :(得分:4)
另一种方法是查看哪个操作系统进程打开了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]”。
答案 4 :(得分:4)
您也可以使用Cassandra的nodetool命令。
nodetool drain
该文档没有说明关闭它的任何内容,但它对我来说可靠地使用单个节点,本地服务器。但是,通常需要几秒钟才能完成关机。
答案 5 :(得分:0)
kill -9 ` acx | grep -i cassandra | awk '{print$1}'
`
答案 6 :(得分:0)
我使用的是新的Datastax Enterprise 5.0版本,它至少提供了一个足够简单的命令来阻止Cassandra:
dse cassandra-stop
关闭需要一些时间,但它对我有用。