Apache Cassandra远程访问

时间:2012-09-02 14:50:46

标签: cassandra remote-access

我在远程Ubuntu服务器上安装了Apache Cassandra。如何允许Apache Cassandra数据库的远程访问?以及如何建立连接?

4 个答案:

答案 0 :(得分:46)

通过其thrift端口远程访问Cassandra(尽管注意JMX端口可用于执行一些有限的操作)。

thrift端口在cassandra.yaml中由rpc_port参数定义,默认为9160.您的cassandra节点应该绑定到服务器网卡的IP地址 - 它不应该是{ {1}}或127.0.0.1这是环回接口的IP,绑定到此将阻止直接远程访问。您可以使用cassandra.yaml中的localhost参数配置绑定地址。将此设置为rpc_address说“侦听所有网络接口”,这可能适合您,也可能不适合您。

要建立连接,您可以使用:

  • cassandra发行版的bin目录中的cassandra-cli提供简单的get / set / list操作并依赖于Java
  • 提供对cassandra的CQL访问的cqlsh shell,这取决于Python
  • 更高级别的界面,例如Apollo

答案 1 :(得分:5)

对于现在发现此问题的任何人,最佳答案已过时。

Apache Cassandra的thrift接口已弃用,将在Cassandra 4.0中删除。默认客户端端口现在为9042。

如Tyler Hobbs所述,您需要确保rpc_address参数未设置为127.0.0.1或localhost(默认情况下为localhost)。如果将其设置为0.0.0.0以侦听所有接口,则还需要将broadcast_rpc_address设置为节点的公共或私有IP地址(具体取决于您计划连接到Cassandra的方式) )

Cassandra-cli也被弃用,Apollo不再活跃。用cqlsh代替cassandra-cli,用Java driver代替阿波罗。

我不建议远程访问JMX端口,除非secure it properly启用SSL和强身份验证。

希望这有用。

答案 2 :(得分:3)

对于使用Azure的任何人来说,问题可能是您需要创建公共IP地址,因为虚拟IP指向云服务本身而不是虚拟机。您可以找到更多信息in this post

答案 3 :(得分:1)

  

卡桑德拉3.11.3

为了使我的工作,我做了以下工作。 cassandra.yaml中的更改:

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: ***.***.***.***

broadcast_rpc_address是安装了cassandra的计算机的地址

 seed_provider:
  - class_name: ...
    - seeds: "127.0.0.1, ***.***.***.***"

在种子中,我添加/添加了运行cassandra的计算机的IP地址。

我使用tableplus从Windows访问了它。在tableplus中,我写了cassandra机器的ip地址,在端口部分写了9042,并使用了用于ssh连接的用户名和密码。