在gcp实例上设置cassandra集群时出错,怎么办?

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)'.

展开
收起
被纵养的懒猫 2019-09-17 17:27:03 856 分享 版权
阿里云 AI 助理回答

看起来你在尝试配置Cassandra集群时遇到了连接问题,特别是与nodetool命令相关。错误信息显示nodetool无法连接到本地地址127.0.0.1:7199,这通常是因为它试图通过环回接口连接到Cassandra的JMX端口,但你的配置指向了外部IP,而nodetool默认还是尝试使用localhost。

要解决这个问题,请按照以下步骤操作:

  1. 确认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地址。

  2. 开启并配置JMX端口:同样在cassandra-env.sh中,确保JMX端口(默认是7199)是开放的,并且如果有防火墙,确保这个端口在安全组规则中也被允许。你可能还需要设置JMX相关的其他参数,比如认证和SSL,以增强安全性。

  3. 更新防火墙规则:在GCP控制台上,确保实例的安全组规则允许从你的笔记本电脑IP地址到所有Cassandra节点的JMX端口(默认7199)的入站流量。

  4. 重启Cassandra服务:应用上述更改后,重启Cassandra服务,让配置生效。

  5. 使用正确的地址运行nodetool:如果你希望从笔记本电脑直接使用nodetool,你需要指定集群中某个节点的外部IP地址,而不是默认的localhost。可以通过以下方式之一执行:

    • 直接指定IP和端口:nodetool -h <node_external_ip> status
    • 设置CASSANDRA_HOST环境变量:export CASSANDRA_HOST=<node_external_ip> 然后运行 nodetool status
  6. 检查网络连接:确保你的笔记本电脑可以直接访问GCP实例的JMX端口,没有网络配置或路由问题。

请按照这些步骤进行调整和验证,应该能帮助你解决nodetool连接失败的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:

阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。

收录在圈子:
还有其他疑问?
咨询AI助理