如何使用DevCenter远程连接到Cassandra

时间:2015-04-30 20:14:49

标签: .net azure cassandra datastax

我使用他们的图像在Azure上设置了DataStax Cassandra Sandbox。我能够在服务器上本地运行OpsCenter而没有任何问题。安装是Ubuntu,我很新。

根据这篇文章Apache Cassandra remote access我应该能够将我的rpc_address设置为0.0.0.0以允许远程访问我的数据库。但是它说在尝试从我本地Windows 8 PC上的DevCenter进行连接时无法连接。

以下是我的设置: enter image description here

联系人主机地址是Azure中为我的VM显示的虚拟IP地址。该端口与cassandra.yaml配置文件中显示的端口相同。 我没有配置任何授权,根据我的阅读,我应该只能使用.NET或管理工具进行连接,但都不能正常工作。

enter image description here

我还检查了端口是否打开,据我所知: enter image description here

我知道它可能是9160或9042。

2 个答案:

答案 0 :(得分:5)

感谢所有帮助我解决这个问题的人。最终的问题是,在设置Azure VM时,分配的虚拟IP用于云服务本身而不是虚拟机。因此,即使看起来正确的端口暴露,您也无法从外部计算机访问它们。

更多info about it here (但请先阅读下面的说明,因为这在Azure管理控制台中更容易实现)

在设置虚拟机时,您会注意到Azure会自动为您的SSH连接创建端点,例如55xxx。您将无法连接到配置的端口22,如框本身所示,而是必须使用55xxx的端点端口等。

这一点很重要,因为Cassandra端口8888(OpsCenter)和9042(本地传输)也是如此。

所以你可以:

  1. 为这些端口创建端点,并在连接时使用它们 远程的。
  2. 创建指向VM本身的公共IP地址 而不是云服务。
  3. 我无法让端点首先工作,但后来让它们正常工作。这导致我设置一个公共IP地址。我使用Azure Powershell进行了艰难的操作。这很痛苦,也很多研究。 但是,花了这么多时间之后,我意识到它现在可以在预览控制台中完成。只需转到VM上的IP地址设置,然后启用“实例IP地址”选项。

    然后,您应该可以使用通过浏览器完成设置后返回的IP地址远程连接到OpsCenter :(新IP地址):8888

    ...然后在DevCenter中使用新的IP地址和端口9042.

    如果您使用端点而不是设置公共静态IP (出于安全原因而希望通过ip过滤器启用用户访问控制),那么您将需要使用新端点改为创建端口号以及您的虚拟IP地址。

    其次......你需要在cassandra.yaml文件中将rpc_address设置为0.0.0.0。

答案 1 :(得分:4)

  

我知道它可能是9160或9042。

从连接设置屏幕截图中可以看出,DevCenter通过" Native Protocol连接到Cassandra。"这是指本地二进制协议(除非您在native_transport_port中更改cassandra.yaml)在端口9042上运行.Thrift通过端口9160连接,我不相信您可以配置DevCenter以连接Thrift

接下来,检查listen_addressbroadcast_addresscassandra.yaml的值。至少应使用您的主机名或外部IP地址定义其中一个。

设置"原生协议端口"到9042.然后尝试连接到您的外部IP地址。

修改

检查您的system.log文件并查找如下所示的行:

Starting listening for CQL clients on localhost/127.0.0.1:9042...

无论您看到哪个地址,都需要通过DevCenter或客户端连接到的地址。如果该行显示127.0.0.1,您可以继续工作。

此外,以下是我过去帮助过的类似问题的链接:How do I connect to local cassandra db

  

您是否有人必须为您的虚拟机分配公共IP?

我们(基于云)的Cassandra服务器(产品中)具有内部和外部IP地址。我明天必须仔细检查,但我们的Cassandra 2.0配置设置为listen_address我们的外部(公共)IP和rpc_address空白或设置为相同。

以下是一些可能有助于您配置此文档的文档: