当出现“连接被拒绝”错误时,如何让 Cassandra 启动?

当出现“连接被拒绝”错误时,如何让 Cassandra 启动?

我在 Ubuntu 16.04 上安装了 Cassandra。(我已经让 Cassandra 在 RedHat 上运行。但现在我想让它在 Ubuntu 上运行。)安装似乎很顺利。我运行此命令来证明 Cassandra 处于活动状态:

sudo service cassandra status

此命令返回以下输出:

cassandra.service - LSB: distributed storage system for structured data 
Loaded: loaded (/etc/init.d/cassandra; bad; vendor preset: enabled)   
Active: active (exited) since Tue 2017-12-26 19:22:43 UTC; 8min ago
Docs: man:systemd-sysv-generator(8)   Process: 1252 ExecStart=/etc/init.d/cassandra start (code=exited, status=0/SUCCESS)     
Tasks: 0    Memory: 0B         CPU: 0

上面的“不好”让我担心。但它确实返回了“活动”。似乎没有什么大问题。

当我运行“cqlsh”或“cqlsh 127.0.0.1”时,我得到

连接错误:('无法连接到任何服务器',{'127.0.0.1':错误(111,“尝试连接到[('127.0.0.1',9042)]。最后一个错误:连接被拒绝”)})

我用nmap测试了9042端口,没有被封,也没有安装防火墙。

我重启了服务器。我尝试修改 cassandra-env.sh。我取消注释了一个节并将其设置为 127.0.0.1:

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"

我所做的一切都没有用。我期望在输入“cqlsh”或“cqlsh 127.0.0.1”时输入不同的命令提示符。但这并没有发生。我该怎么做才能让“cqlsh”在 Ubuntu 服务器上工作?

答案1

如果你查看 /var/log/cassandra/system.log,你会看到:

端口已被使用:7199;嵌套异常为:java.net.BindException:地址已在使用中(绑定失败)

这是 /etc/cassandra/cassandra-env.sh 中的默认端口:

JMX_PORT="7199"

将其更改为另一个端口:7198。

这个解决方案对我有用。

相关内容