使用私有 IP 在 AWS 上配置 Cassandra
Posted
技术标签:
【中文标题】使用私有 IP 在 AWS 上配置 Cassandra【英文标题】:Cassandra configuration on AWS using private IPs 【发布时间】:2015-11-11 02:52:39 【问题描述】:我正在尝试在 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)
我错过了什么吗?
我检查了以下链接并尝试设置广播地址。但是,它似乎不起作用。 Apache Cassandra: Unable to gossip with any seeds
【问题讨论】:
【参考方案1】:确保在安全组中打开端口。安全组中的机器必须接受 7000、9042 和 9160 上的连接。如果这是概念验证,只需打开从安全组到自身的所有 TCP。
另外,请确保首先启动种子实例。否则,第二个实例会抱怨它“无法用任何种子八卦”。
如果您使用的是内部 IP,则不需要广播地址。
【讨论】:
以上是关于使用私有 IP 在 AWS 上配置 Cassandra的主要内容,如果未能解决你的问题,请参考以下文章
如何从公司内部机器浏览器访问 AWS EC2 实例私有 IP 以访问在 EC2 上运行的应用程序
使用 AWS api 网关 + lambda + Nodejs 的私有和公共 ip