首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用DataStax Python驱动程序远程连接卡桑德拉

无法使用DataStax Python驱动程序远程连接卡桑德拉
EN

Stack Overflow用户
提问于 2015-06-02 23:57:22
回答 2查看 4K关注 0票数 2

我很难远程连接到Cassandra (运行在EC2节点上)(从我的笔记本电脑)。当我将DataStax Python驱动程序用于Cassandra时:

代码语言:javascript
运行
复制
from cassandra.cluster import Cluster
cluster = Cluster(['10.X.X.X'], port=9042)
cluster.connect()

我得到:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/Users/user/virtualenvs/test/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-23-dc85f20fd4f5>", line 1, in <module>
    session = cluster.connect()
  File "/Users/user/virtualenvs/test/lib/python2.7/site-packages/cassandra/cluster.py", line 755, in connect
    self.control_connection.connect()
  File "/Users/user/virtualenvs/test/lib/python2.7/site-packages/cassandra/cluster.py", line 1868, in connect
    self._set_new_connection(self._reconnect_internal())
  File "/Users/user/virtualenvs/test/lib/python2.7/site-packages/cassandra/cluster.py", line 1903, in _reconnect_internal
    raise NoHostAvailable("Unable to connect to any servers", errors)
NoHostAvailable: ('Unable to connect to any servers', {'10.X.X.X': OperationTimedOut('errors=None, last_host=None',)})

但是卡桑德拉跑是因为nodetool status给了我:

代码语言:javascript
运行
复制
UN 127.0.0.1 124.18 KB 256 100.0% 4d973e17-ae08-3aa1-81d2-605b92753694 rack1

卡桑德拉似乎也在收听9042端口的节目:

代码语言:javascript
运行
复制
netstat -nltp | grep 9042

tcp6       0      0 0.0.0.0:9042            :::*                    LISTEN      -

我可以从笔记本电脑到卡桑德拉:

代码语言:javascript
运行
复制
$ telnet 10.X.X.X 9042
Trying 10.X.X.X...
Connected to ip-10-X-X-X.
Escape character is '^]'.

我的cassandra.yaml的相关亮点:

代码语言:javascript
运行
复制
start_native_transport: true
rpc_address: 0.0.0.0
rpc_port: 9160
broadcast_rpc_address: 10.X.X.X

/var/log/cassandra/system.log没有显示出任何有用的东西。

编辑:我还可以使用服务器上的cqlsh 127.0.0.1 9042和笔记本电脑上的cqlsh 10.X.X.X 9042连接卡桑德拉,没有任何问题。

溶液

看来,出于某种原因,我测试脚本的唯一地方(PyCharm内部的)是我的脚本无法工作的唯一地方。在PyCharm或Python交互模式中作为脚本运行没有问题。我将保留这个问题,因为它包含了一个相当完整的清单,用于Python到Cassandra连接故障排除。

EN

回答 2

Stack Overflow用户

发布于 2018-08-06 09:40:07

如果超出了控制连接超时,则可以引发此类异常。尝试增加它或将其设置为None以完全禁用此超时。例如:

代码语言:javascript
运行
复制
from cassandra.cluster import Cluster
cluster = Cluster(['127.0.0.1'], control_connection_timeout=10,  port=9042)
cluster.connect()
票数 3
EN

Stack Overflow用户

发布于 2015-06-03 13:23:36

下面是一个简单的调试方法:在另一台安装了cassandra的计算机上,使用cassandra命令“cqlsh10.X.X.x”连接远程cassandra服务器。如果失败,则应修改cassandra远程模式的cassandra配置文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30608548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档