Cassandra启动

10

我是一个Cassandra数据库的新手。我已经下载了Cassandra并设置了JAVA_HOME。当我尝试运行时,会抛出以下异常:

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

有人能协助解决这个问题吗?

在尝试使用端口7199之前,请先尝试运行netstat -tlnp命令查看该端口是否已被占用。 - manuzhang
我找到了这行代码,接下来该怎么做? tcp 0 0 0.0.0.0:7199 0.0.0.0:* LISTEN 8427/java - Pratapi Hemant Patel
7个回答

15

对于那些在使用Ubuntu操作系统时遇到相同问题的人,解决方法可能是杀死CassandraDaemon进程:

pkill -f CassandraDaemon
当您第一次启动“cassandra -f”命令时,后台守护进程正在运行,因此Ctrl ^ C不会停止该进程。

谢谢@Day,救了我的一天:P - Ashok Raj
我也遇到了同样的问题。如何在Mac OS Mojave - 10.14.4上终止进程? - Tejas Ratunawar
尝试像这样编写代码:pid=$(ps ax | grep CassandraDaemon | grep -v grep | awk '{ print $1 }') && kill -9 $pid - Day

4
您可以通过检查端口来确定Cassandra是否正在运行。
lsof -i :9160

如果你收到了返回结果,这意味着它正在运行。

如果你想停止它,请执行kill -9 "然后是上一步得到的pid"

如果你想查看正在进行的日志,请运行

cassandra -f when you start cassandra

3

7199端口是Cassandra的默认JMX端口(用于监控)。 如果您尝试在一台物理机上运行多个实例,请修改$CASSANDRA_HOME/conf/cassandra-env.sh配置文件,并设置不同的端口,例如7299。

JMX_PORT="7299"

2
  1. 使用命令ps -ax | grep cassandra,记录进程ID。

  2. 使用命令kill <pid>结束该进程。

  3. 以管理员身份运行sudo ./cassandra


虽然这段代码片段可能解决了问题,但包括解释真的有助于提高您的帖子质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您的代码建议原因。请尽量不要在代码中添加过多的解释性注释,这会降低代码和解释的可读性! - kayess

2

看起来Cassandra已经在后台运行了。尝试使用cassandra-cli进行连接。


我已经尝试过了。在启动服务器后,我打开了另一个终端来使用以下命令与Thrift进行交互:cassandra-cli。但是我遇到了上面提到的错误。 - Dalee

1
我将为您翻译有关编程的内容:

我正在编写Windows开发人员命令提示符相同的内容:

假设它显示9042端口存在问题

netstat -ano | findstr : 9042

列出所有使用9042端口的进程

taskkill /PID 237979 /F

这里的237979是使用9042端口的进程ID


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接