2012-12-11 94 views
1

我正在配置位于三台不同机器中的三节点Cassandra集群。我可以互相ping通,也可以ping通。 我在这三台机器上安装了cassandra集群。说他们是A,B,C,其中A是种子。这里,C成功加入种子(A),并打印加入日志。当我通过A分析集群时,我可以看到C已经加入,拥有66.7%的所有权。 'A'拥有33.3%的所有权。 (我已经平分了令牌。) 但是节点B没有加入群集。没有打印错误。除了listen_address和rpc_address之外,B和C的配置类似。我验证了这两者之间的配置,它们是相似的。One Cassandra节点未能加入Cassandra集群

这可能是网络问题,但我不确定是否是这种情况。没有问题得到打印。关于我可以在这里尝试的任何建议?这似乎很奇怪。可能是由于某些端口问题?

+1

B上的'nodetool -h localhost ring'输出是什么? – Wildfire

回答

0

你在卡桑德拉的版本是什么?

尝试关闭每个节点并逐个提出。 Cassandra在1.1.6之前(我认为它是那个版本)有一个问题,即节点有时不能重新加入该环。

其次,确保每个节点都配置了相同的集群名称和相同的一组种子节点。

+1

我们正在使用Cassandra 1.1.3。无论如何,我们找到了解决方案,结果是网络接口的问题。每台机器都有两个网络接口。即。一个在192.168.x范围内,另一个在10.x范围内。出现问题的机器竟然使用10.x IP作为rpc地址。 (我们有一个域到IP映射) 所以,改变IP修复了这个问题。将使用0.0.0.0作为rpc_address在这里可能的解决方案? –

+0

是的 - 但标准的建议是将它们放在不同的接口上,以便节点之间的八卦不会受到来自客户端的大量流量的影响。 – Sarge