【问题标题】:stop cassandra server on mac os x在 mac os x 上停止 cassandra 服务器
【发布时间】:2020-09-30 12:01:09
【问题描述】:

如何在我的 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.

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

【问题讨论】:

  • 我也想知道...如入门文档中所述,CONTROL-C 在 MAC OSX 上不起作用。
  • Michael,通常我以 ./cassandra 开头,并且不传递 -f 标志以使进程处于前台。所以,control-c 不起作用。

标签: cassandra


【解决方案1】:

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

命令

brew info cassandra查看cassandra的状态

brew services start cassandra启动cassandra

brew services stop cassandra 阻止卡桑德拉

【讨论】:

  • brew services stop cassandra 非常适合我
【解决方案2】:

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

打开终端并输入:

$ 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

【讨论】:

  • 仅供参考,我注释掉了 kill 'cat ' 以显示需要注释掉的内容。
  • 迈克尔,感谢您的回答。我确实使用了我的问题中提到的 kill process 命令,但发现数据已损坏。可能是其他原因,但是通过传递 PID 的 kill 命令肯定会停止服务器。
【解决方案3】:

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

pkill -f 'java.*cassandra'

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

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

【讨论】:

    【解决方案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]”。

    【讨论】:

      【解决方案5】:

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

      nodetool drain
      

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

          dse cassandra-stop
          

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

          【讨论】:

            猜你喜欢
            • 2022-08-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-25
            • 2011-12-20
            • 1970-01-01
            相关资源
            最近更新 更多