0

我正在尝试设置一个 3 节点 Cassandra VM 集群。

我在单个虚拟机上安装了 datastax 包中的 cassandra,然后修改了以下内容:

  1. 种子 - vm1(在所有 vm 配置中设置 ip 地址)

  2. 更新了以 listen_address 作为主机 ip 的配置,添加了 rpc_broadcast_address

  3. 在防火墙规则中添加了 cassandra 端口以允许虚拟机间通信

  4. 还尝试使用 SSH 连接到虚拟机

在尝试了所有这些之后,我启动了 cassandra 种子节点,它运行良好,当我使用 nodetool 检查状态时,我看到节点状态为 UN (Up/Normal)。然后我在其他集群节点上启动 cassandra。它无法启动,无法使用任何种子错误进行八卦。任何帮助将不胜感激!

堆栈跟踪:

java.lang.RuntimeException: Unable to gossip with any seeds
    at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1334) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:540) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:783) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:720) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:611) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:378) [apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537) [apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:626) [apache-cassandra-2.1.9.jar:2.1.9]

谢谢!

4

1 回答 1

2

好的,花了一天的时间后,发现了问题。这确实是一个防火墙问题。除了在 iptables 中输入规则,确保 ACCEPT 规则出现在 REJECT 规则之前 -> 排序事项。更改顺序并重新启动 iptables 服务和 cassandra 后,它开始工作,节点能够与种子进行八卦。

于 2015-09-24T21:14:53.390 回答