【问题标题】:Cassandra-cli cant connect to remote cassandra serverCassandra-cli 无法连接到远程 cassandra 服务器
【发布时间】:2012-07-24 10:21:53
【问题描述】:

我有一个 cassandra 服务器在服务器 (serv1) 上运行。 cassandra-cli 在 serv1 上运行时可以连接到它。但是,当我尝试通过其他服务器(serv2)连接到它时,出现以下异常:

org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
    at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:80)
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:256)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
    ... 3 more
Exception connecting to jckstore/9160. Reason: Connection refused.

我查看了 cassandra.yaml,发现属性“listen_address”被配置为“localhost”,并且严重不鼓励使用 0.0.0.0。我试图将 localhost 更改为 serv2,serv1 的 IP 地址,但没有任何效果。即使注释掉也无济于事。

有没有一种方法可以让我的 cassandra 服务器在不使用 0.0.0.0 的情况下监听所有 ip

【问题讨论】:

    标签: java nosql cassandra thrift thrift-protocol


    【解决方案1】:

    我能够解决以下问题:

    1. 将 cassandra.yaml 中的 rpc_address 属性更改为 0.0.0.0 而不是 localhost。
    2. 将 cassandra.yaml 中的 broadcast_rpc_address 属性设置为 0.0.0.0 以外的值

    然后我就可以访问了。

    【讨论】:

    • 除了 0.0.0.0 之外是什么意思。你把它设置成什么了?
    • 在yaml文件中,地址为1.2.3.4在注释中。我将它设置为 255.255.255.255,它可以正常工作,嗯……至少目前是这样
    【解决方案2】:

    Cassandra cli 使用 thrift 连接到 Cassandra。 rpc_address 决定 thrift 客户端如何连接到 Cassandra。将其设置为 0.0.0.0 将起作用,但将其设置为服务器的主机名然后使用相同的主机名进行连接也将起作用。

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,我一直很惊讶,因为它配置正确。最后发现是权限问题:

      chown -R cassandra: /var/lib/cassandra
      chown -R cassandra: /var/log/cassandra
      

      希望对你有帮助:-)

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。我通过更新 snappy temp dir VM 选项以指向正确的目录来解决此问题。

        VM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/home/users/local/user/cassandra_home/snap
        

        希望这会有所帮助!

        【讨论】:

          【解决方案5】:

          我也遇到了同样的问题“连接被拒绝”。将 rpc_address 从“localhost”更改为与 listen_address 相同的主机名对我有用。

          【讨论】:

            【解决方案6】:

            我也遇到了同样的问题“连接被拒绝”。将 start_rpc: 更改为 true 为我修复了它。

            【讨论】:

              猜你喜欢
              • 2018-10-12
              • 1970-01-01
              • 2015-01-03
              • 1970-01-01
              • 1970-01-01
              • 2016-01-05
              • 2014-07-28
              • 2016-11-27
              • 2016-03-02
              相关资源
              最近更新 更多