0
我正在尝试在GCP实例上设置一个cassandra集群,并尝试通过我的笔记本电脑与它们进行通信。
在每个实例中,我更改种子,RPC地址并侦听cassandra.yaml文件中节点的外部IP地址。在cassandra-env.sh中,我将该行-JVM_OPTS =“JVM_OPTS -Djava.rmi.server.hostname = xxxx”注释到实例的外部ip。当我尝试运行节点并检查其状态时,我仍然遇到以下错误 -
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
看起来你在尝试配置Cassandra集群时遇到了连接问题,特别是与nodetool
命令相关。错误信息显示nodetool
无法连接到本地地址127.0.0.1:7199
,这通常是因为它试图通过环回接口连接到Cassandra的JMX端口,但你的配置指向了外部IP,而nodetool
默认还是尝试使用localhost。
要解决这个问题,请按照以下步骤操作:
确认JMX监听地址:确保Cassandra配置中的JMX监听地址被正确设置为允许外部访问的地址(如果需要从笔记本电脑远程管理)。在cassandra-env.sh
文件中,你需要修改或取消注释以下行,并将其设置为实例的外部IP地址,而不是127.0.0.1:
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<your_external_ip>"
确保替换<your_external_ip>
为实际的外部IP地址。
开启并配置JMX端口:同样在cassandra-env.sh
中,确保JMX端口(默认是7199)是开放的,并且如果有防火墙,确保这个端口在安全组规则中也被允许。你可能还需要设置JMX相关的其他参数,比如认证和SSL,以增强安全性。
更新防火墙规则:在GCP控制台上,确保实例的安全组规则允许从你的笔记本电脑IP地址到所有Cassandra节点的JMX端口(默认7199)的入站流量。
重启Cassandra服务:应用上述更改后,重启Cassandra服务,让配置生效。
使用正确的地址运行nodetool:如果你希望从笔记本电脑直接使用nodetool
,你需要指定集群中某个节点的外部IP地址,而不是默认的localhost。可以通过以下方式之一执行:
nodetool -h <node_external_ip> status
export CASSANDRA_HOST=<node_external_ip>
然后运行 nodetool status
检查网络连接:确保你的笔记本电脑可以直接访问GCP实例的JMX端口,没有网络配置或路由问题。
请按照这些步骤进行调整和验证,应该能帮助你解决nodetool
连接失败的问题。
阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。