2015-11-11 28 views
0

我正嘗試在aws實例上設置2個節點的Cassandra羣集。使用專用IP在AWS上配置Cassandra

我創建使用

ifconfig eth0:0 <alias_ip1> up 
and ifconfig eth0:1 <alias_ip2> up 

另外兩個IP地址,我有卡桑德拉的兩個實例。

在我的第一卡桑德拉的實例配置,我已經給出了以下幾點

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. 

在我第二次卡桑德拉的實例配置,我已經給下面的東西

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:Una可以用任何種子傳播任何種子 at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1336)

我錯過了什麼嗎?

我檢查了以下鏈接並試圖設置broadcast_address。但是,它似乎沒有工作。 Apache Cassandra: Unable to gossip with any seeds

回答

0

確保端口在安全組中打開。安全組中的計算機必須接受7000,9042和9160上的連接。如果這是概念驗證,則只需將安全組中的所有TCP都打開即可。

此外,請確保您啓動種子實例1st。否則,二審就會抱怨說「無法與任何種子閒談」。

如果您使用內部IP,則不需要broadcast_address。