Apache Cassandra远程访问

Apache Cassandra远程访问,cassandra,remote-access,Cassandra,Remote Access,我已经在远程Ubuntu服务器上安装了ApacheCassandra。如何允许远程访问Apache Cassandra数据库?如何建立连接?通过Cassandra的thrift端口远程访问Cassandra(不过请注意,JMX端口可用于执行一些有限的操作) 节约端口在cassandra.yaml中由rpc_port参数定义,该参数默认为9160。您的cassandra节点应该绑定到服务器网卡的IP地址-它不应该是环回接口的IP地址127.0.0.1或localhost,绑定到该地址将阻止直接远程

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

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

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

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

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

对于任何使用Azure的人,问题可能是您需要创建公共ip地址,因为虚拟ip指向云服务本身,而不是虚拟机。你可以找到更多的信息。对于现在找到这个问题的人来说,最重要的答案已经过时了

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

正如Tyler Hobbs所指出的,您需要确保参数没有设置为127.0.0.1或localhost(默认情况下是localhost)。如果将其设置为
0.0.0.0
以侦听所有接口,则还需要将其设置为节点的公用或专用IP地址(取决于您计划如何连接到Cassandra)

Cassandra cli也不推荐使用,Apollo不再处于活动状态。使用代替卡桑德拉cli和代替阿波罗

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

希望这是有帮助的

卡桑德拉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, ***.***.***.***"
在seeds中,我添加/附加了cassandra运行的机器的ip地址


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

您能运行以下命令吗:ps-ef | grep cassandrademon;netstat-lntp | grep这将显示您的cassandra正在监听的IP/端口组合。另一方面,尽量避免远程登录到thrift端口-传入任何非thrift数据都可能导致内存不足的情况(这是一个非常讨厌的“功能”-为了测试和确认这一点,以随机文本的形式远程登录到thrift端口类型,点击return,然后在接下来的几分钟内监控CassandraDaemon pid的内存使用情况)请注意,自从两年前版本0.7.0以来,Cassandra对Thrift端口上的随机垃圾具有很强的鲁棒性。啊,好吧,你是对的-我刚刚在v1.1-0实例上进行了尝试(而[1];do nc 127.0.0.1 9168