首页 文章

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

提问于
浏览
5

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

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

因此,我将主机和端口的“CentOS 6.4 - 服务器”(其中运行cassandra数据库)的IP作为9160.但是在测试连接时它失败了 .

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

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

4 回答

  • 3

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

    • start_native_transport: true

    • rpc_address :可从客户端访问的IP或主机名

    • 群集中的计算机接受端口 9042 上的连接( native_transport_port config选项)

    如果 rpc_address 设置为专用IP或 0.0.0.0 ,则DevCenter将不知道要连接到哪个节点 .

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

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

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

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

  • 3

    在cassandra.yaml中,我设置了

    • listen_address:localhost

    • rpc_address:1.2.3.4

    • broadcast_rpc_address:1.2.3.4

    做完之后

    sudo service cassandra restart

    DevCenter能够成功连接 .

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

    cqlsh 1.2.3.4

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

  • 0

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

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

    $> ssh -L 9042:localhost:9042 <username>@<ip-address-cassandra-db> -N
    

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

    现在,在您的DevCenter>联系主机中,提供“127.0.0.1”并测试连接 . 宾果,你看到了魔力......

  • 5

    如果有人在本地使用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
    

相关问题