使用私有IP在AWS上进行Cassandra配置

时间:2015-11-11 02:52:40

标签: amazon-web-services apache-spark cassandra-2.0

我正在尝试在aws实例上设置2个节点的Cassandra集群。

我使用

创建了两个IP地址
ifconfig eth0:0 <alias_ip1> up
and ifconfig eth0:1 <alias_ip2> up

另外,我有两个cassandra实例。

在我的第一个cassandra实例配置中,我给出了以下内容

cluster_name: 'ClusterName'
seeds: "<alias_ip1>"
listen_address: <alias_ip1>
rpc_address: <public_ip_of_aws_instance> #I want my spark program that is running on a different machine to access this cluster. So setting this.

在我的第二个cassandra实例配置中,我给出了以下内容

cluster_name: 'ClusterName' 
seeds: "<alias_ip1>" 
listen_address:<alias_ip2> 
rpc_address: <public_ip_of_aws_instance>

当我尝试启动我的实例时,出现以下错误

java.lang.RuntimeException: Unable to gossip with any seeds
at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1336) ~[apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:540) ~[apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:788) ~[apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:720) ~[apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:611) ~[apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:387) [apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562) [apache-cassandra-2.1.11.jar:2.1.11]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:651) [apache-cassandra-2.1.11.jar:2.1.11]

java.lang.RuntimeException:无法用任何种子闲聊     在org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1336)

我错过了什么吗?

我检查了以下链接并尝试设置broadcast_address。但是,它似乎没有起作用。 Apache Cassandra: Unable to gossip with any seeds

1 个答案:

答案 0 :(得分:0)

确保在安全组中打开端口。安全组中的计算机必须接受7000,9042和9160上的连接。如果这是概念验证,只需打开从安全组到自身的所有TCP。

另外,请确保启动种子实例1。否则,第二个实例会抱怨它“无法用任何种子闲聊”。

如果您使用内部IP,则不需要broadcast_address。