我无法使用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的交互式控制台。
有人可以向我解释我做错了吗?
由于
答案 0 :(得分:1)
使用Amazon AWS上的DataStax Community AMI重新安装cassandra解决了这个问题。可能是Cassandra和Datastax python驱动程序版本的问题。
答案 1 :(得分:0)
正如here所描述的那样:
我了解到gevent
模块会干扰cassandra-driver
卸载gevent解决了我的问题
pip uninstall gevent