【问题标题】:CQLSH is not recognized in google cloud datastax cluster nodesCQLSH 在 google cloud datastax 集群节点中无法识别
【发布时间】:2023-08-31 16:04:01
【问题描述】:

我在 GCP 中部署了一个 4 节点的 datastax 集群。我可以 ssh 进入每个 VM 节点,但无法识别 cqlsh。请您帮我了解我哪里出错了

错误:

Connection error: ('Unable to connect to any servers', 
    {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1',
    9042)]. Last error: Connection refused")})

【问题讨论】:

    标签: cassandra google-cloud-platform datastax cqlsh


    【解决方案1】:

    如果您的集群工作正常,那么节点必须通过自己的 IP(内部或外部)相互了解。所以 Cassandra 没有配置为将 9042 绑定到 127.0.0.1,这意味着尝试 cqlsh 到 127.0.0.1:9042 将不起作用。

    一种检查方法是执行nodetool status,并使用其中一个IP 地址。但是,当您使用 GCP 时,您可能同时拥有内部和外部 IP 地址,因此在这种情况下,它实际上取决于将哪个 IP 设置为您的broadcast_rpc_address。您可以通过 grepping cassandra.yaml 来检查它们。

    $ grep "_address:" cassandra.yaml 
    
    listen_address: 192.168.1.3 
    broadcast_address: 10.20.15.1
    # listen_on_broadcast_address: false
    rpc_address: 192.168.1.3 
    broadcast_rpc_address: 10.20.15.1
    

    在这种情况下,您的 cqlsh 命令将如下所示:

    cqlsh 10.20.15.1 -u youruser -p yourpassword
    

    【讨论】:

    • 非常感谢您抽出时间回复。我有一个疑问……当您告诉 Cassnadra 未配置为将 9042 绑定到 127.0.0.1 时……我自己没有配置任何东西……它是部署在 GCP 中的简单 datastax Cassandra 集群。除了 GCP 中的标准创建集群选项之外,我在部署时是否错过了任何手动步骤?
    • 您是否在 GCP 中使用特殊的 DataStax 帐户或工具?我从未见过“创建集群”选项。无论如何,所有 Cassandra 安装都将 127.0.0.1 作为我上面列出的所有 _address 属性的默认值。这适用于本地或单实例部署,但必须针对多节点配置进行更改。所以即使你没有特别配置任何东西,something 做了,或者你的节点不会加入集群。无论如何,使用 127.0.0.1 永远不会适用于具有超过 1 个节点的集群。 @AniruddhyaDutta
    • 是的,Aron 我在 GCP 中使用 DataStax 服务。当您启动以下 datastax 时,您将获得可以部署的默认集群选项
    • 由于某种原因我无法上传屏幕截图..但是如果您在 GCP 中搜索 datastax,您可以轻松看到默认启动选项。我在 youtube 视频中看到了 96 个节点部署,之后部署他们只是在其中一个节点中绑定 cqlsh 并且它有效..不知道他们之前做了什么。
    最近更新 更多