从python连接到Cassandra的NoHostAvailable异常

时间:2016-01-07 09:03:22

标签: python-2.7 cassandra

我在尝试从Python连接到我的本地Cassandra实例时获得异常。我可以使用cqlsh连接到Cassandra没有问题。我正在运行的版本是ubuntu上的Cassandra 3.01:

cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.0.1 | CQL spec 3.3.1 | Native protocol v4]

我获得的例外如下:

ERROR:cassandra.cluster:Control connection failed to connect, shutting down Cluster:
Traceback (most recent call last):
  File "cassandra/cluster.py", line 840, in   cassandra.cluster.Cluster.connect (cassandra/cluster.c:11146)
  File "cassandra/cluster.py", line 2088, in cassandra.cluster.ControlConnection.connect (cassandra/cluster.c:36955)
  File "cassandra/cluster.py", line 2123, in cassandra.cluster.ControlConnection._reconnect_internal (cassandra/cluster.c:37811)
 NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1':       InvalidRequest(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',), 'localhost': InvalidRequest(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',)

我检查了我的cassandra.yaml文件,看起来没问题:

egrep 'rpc_port:|native_transport_port:' /etc/cassandra/cassandra.yaml
native_transport_port: 9042
rpc_port: 9160

我还能看到别的什么?建议是最受欢迎的。

2 个答案:

答案 0 :(得分:4)

看起来您正在尝试使用旧版本的cqlsh连接到3.0.1服务器,或者您(不知何故)使用较旧的python驱动程序。

您收到的错误消息:

(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',)

表示客户端驱动程序正在尝试从早于3.0的schema_keyspaces表中获取表元数据。此信息现在保存在system_schema.keyspaces表中。

答案 1 :(得分:0)

使用pip install --upgrade cassandra-driver升级cassandra-driver。

您可以输入python -c 'import cassandra; print cassandra.__version__'来确认此驱动程序的版本。