我无法使用DataStax Python驱动程序

时间:2015-11-16 19:31:59

标签: python amazon-ec2 cassandra datastax datastax-enterprise

我无法使用Cassandra的DataStax Python驱动程序连接到Cassandra(在EC2节点上运行)本地 :(类似于this question

from cassandra.cluster import Cluster
cluster = Cluster(['127.0.0.1'], port=9042)
cluster.connect()

我明白了:

cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1': OperationTimedOut('errors=Timed out creating connection (5 seconds), last_host=None',)})

如果我跑的话也一样:

cluster = Cluster(['127.0.0.1'], port=9160)
cluster.connect()

该服务似乎在正确的端口中侦听:

netstat -nltp | grep 9042 (没有信息可以读取" -p":geteuid()= 1000但你应该是root。) tcp6 0 0 127.0.0.1:9042 ::: * LISTEN -

命令cqlsh 127.0.0.1 9042也完美无缺。

我在文件cassandra.yaml上有默认设置:

start_native_transport: true
native_transport_port: 9042
rpc_address: localhost
rpc_port: 9160

我还尝试使用ec2实例的PRIVATE_IP更改rpc_address但没有任何更改。

我没有使用PyCharm,我在我的实例上使用了python的交互式控制台。

有人可以向我解释我做错了吗?

由于

2 个答案:

答案 0 :(得分:1)

使用Amazon AWS上的DataStax Community AMI重新安装cassandra解决了这个问题。可能是Cassandra和Datastax python驱动程序版本的问题。

答案 1 :(得分:0)

正如here所描述的那样:

我了解到gevent模块会干扰cassandra-driver

  • cassandra-driver(3.10)
  • gevent(1.1.1)

卸载gevent解决了我的问题

pip uninstall gevent