我已经设置了一个新的EC2实例来在EC2上运行cassandra,已经经历了一堆似乎没有帮助的问题。我正在运行apache-cassandra-2.1.0-rc3
我在我的EC2实例上打开了端口9160,9042,说它的IP地址是1.2.3.4
由于这是单节点系统,我还没有按照
中的指示打开其他端口http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installAMISecurityGroup.html
当我尝试使用具有群集配置的python驱动程序连接到此主机时,如下所示:
cluster = Cluster(contact_points=['1.2.3.4',], port=9160)
我收到错误:
File "....cluster.py", line 1649, in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'1.2.3.4': error(111, 'Connection refused')})
关于我需要在cassandra.yml文件中使用什么咒语以允许外部客户端连接在EC2实例上运行的cassandra实例的任何想法?
答案 0 :(得分:2)
使用以下命令修改cassandra.yaml:
rpc_address: 0.0.0.0
broadcast_rpc_address: <your ec2 private ip address>
在你的python代码中,你应该使用端口9042。
请记住,您正在通过互联网打开您的cassandra群集。