如果使用AWS弹性IP地址,Cassandra无法联系种子...仅适用于私有IP地址

时间:2014-01-21 14:36:58

标签: cassandra datastax-enterprise datastax

我创建了3个实例,其中3个弹性IP地址指向这些实例。

我做了一个安装dsc的yum: dsc12.noarch 1.2.13-1 @datastax

/etc/cassandra/default.conf/cassandra.yaml有: - 种子:[弹性IP列表]

但是当我通过“service cassandra start”启动cassandra时,我在/var/log/cassandra/cassandra.log中看到: ... 启动时遇到异常:无法联系任何种子! ... 果然“nodetool status”显示: 无法连接到'127.0.0.1:7199':拒绝连接

BUT: 如果我更改种子的值以使用实例的“私有IP”,cassandra就会很好地开始。我希望弹性IP可以正常工作,但事实并非如此。

你知道为什么吗?

我希望弹性IP工作的原因是我提前知道IP地址,因此当我使用Puppet配置机器时,我可以预先填充cassandra.yaml文件中的种子。在机器启动之前我不知道私有IP地址:(

这几乎与以下内容重复:Cassandra on Amazon EC2 with Elastic IP addresses

1 个答案:

答案 0 :(得分:5)

我相信你的问题来自种子IP与节点的广播IP不同。要更改此项,请修改每个Cassandra.yamls中的以下行

# Address to broadcast to other Cassandra nodes
# Leaving this blank will set it to the same value as listen_address
broadcast_address: <node's elastic ip> #uncomment this line