Apache Cassandra远程访问

use*_*782 25 remote-access cassandra

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

Cra*_*rry 47

远程访问Cassandra是通过其thrift端口(虽然请注意JMX端口可用于执行一些有限的操作).

thrift端口cassandra.yamlrpc_port参数定义,默认为9160.您的cassandra节点应该绑定到服务器网卡的IP地址 - 它不应该是127.0.0.1或者localhost哪个是环回接口的IP,绑定到此将阻止直接远程访问.使用rpc_addresscassandra.yaml中的参数配置绑定地址.将此设置为0.0.0.0"在所有网络接口上监听",这可能适合您,也可能不适合您.

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

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


Jus*_*ron 6

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

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驱动程序代替Apollo.

我不建议远程访问JMX端口,除非您通过启用SSL和强身份验证来正确保护它.

希望这是有帮助的.


小智 5

卡桑德拉 3.11.3

我做了以下工作来让我的工作。cassandra.yaml 的变化:

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: ***.***.***.***
Run Code Online (Sandbox Code Playgroud)

broadcast_rpc_address 是安装 cassandra 的机器地址

 seed_provider:
  - class_name: ...
    - seeds: "127.0.0.1, ***.***.***.***"
Run Code Online (Sandbox Code Playgroud)

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

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