DataStax Devcenter无法连接到远程cassandra数据库

时间:2013-12-13 20:42:33

标签: cassandra

操作系统:CentOS 6.4(服务器)

我已成功安装(yum install dsc20)我服务器中的cassandra数据库层,并可以使用CQL SHel(cqlsh)连接到它。但我需要使用DataStax的DevCenter软件远程运行查询。所以我将它(DevCenter)安装在一个单独的工作站中。 (CentOS 6.4 - 桌面)并尝试添加新连接以连接到cassandra db。

所以我给了" CentOS 6.4 - 服务器" (其中cassandra数据库正在运行)主机和端口为9160.但是在测试连接时它失败了。

我还试图关闭服务器中的防火墙,(/ etc / init.d / iptables stop)。但是没有运气。

我确定这可能是由于一些我无法弄清楚的错误配置造成的。我很感激,如果有人能为我解决这个问题,我正在研究这个并没有找到答案。非常感谢你提前。

4 个答案:

答案 0 :(得分:5)

构建在DataStax Java驱动程序之上的DataStax DevCenter具有相同的connectivity requirements as the driver。即:

  1. start_native_transport: true
  2. rpc_address:可从客户端访问的IP或主机名
  3. 群集中的计算机接受端口9042上的连接(native_transport_port配置选项)
  4. 如果rpc_address设置为私有IP或0.0.0.0,则DevCenter将无法知道要连接的节点。

    如果您的群集有多个节点并且这些节点使用rpc_address: 0.0.0.0,即使您使用几个节点的IP配置DevCenter,它仍然会在发现群集中的其他节点时出现问题。 / p>

    cassandra.yaml中,有关于使用rpc_address: 0.0.0.0的评论/警告:

      

    请注意,与上面的ListenAddress不同,允许指定0.0.0.0   这里如果你想要监听所有接口,但这会破坏客户端   这依赖于节点自动发现。

    注意:将来DevCenter可能会忽略/过滤掉配置了rpc_address: 0.0.0.0的群集中的节点。

答案 1 :(得分:3)

在cassandra.yaml中,我设置了

  1. listen_address:localhost
  2. rpc_address:1.2.3.4
  3. broadcast_rpc_address:1.2.3.4
  4. 做完

    sudo service cassandra restart

    DevCenter能够成功连接。

    在此更改之后,如果没有地址,则cqlsh将无法启动:

    cqlsh 1.2.3.4

    您可以设置环境变量$ CQLSH_HOST = 1.2.3.4。然后只需输入 cqlsh

答案 2 :(得分:3)

试试这个..它对我有用!

在安装了DevCenter的计算机上运行以下命令

DatabaseService.getUsers().success(function(data) {
  $scope.userData = data;
  });

运行此命令后,将提示输入密码

现在在你的DevCenter>联系主持人,提供" 127.0.0.1"和测试连接。宾果,你看到了魔法......

答案 3 :(得分:0)

如果有人在本地使用docker,它可以运行此命令。

docker run --name cassandra -p 127.0.0.1:9042:9042 -p 127.0.0.1:9160:9160 
-e CASSANDRA_LISTEN_ADDRESS=localhost 
-e CASSANDRA_BROADCAST_ADDRESS=localhost
-e CASSANDRA_RPC_ADDRESS=localhost -d cassandra