0

我创建了一个包含 50 个节点的 Apache Cassandra 2.1.2 集群。我将集群命名为“Test Cluster”,这是默认值。然后为了进行一些测试,我从 50 个节点的集群中分离出一个节点。我关闭了 Cassandra,删除了数据目录,刷新了 nodetool。然后我编辑了单节点集群并将其称为“单节点测试集群”,我适当地编辑了种子、cluster_name 和 listen_address 字段。我还正确设置了 JMX。现在这就是发生的事情。1.当我在单个节点上运行nodetool status时,我只看到一个节点启动并运行。如果我运行 nodetool describecluster,我会看到新的集群名称 - “单节点测试集群” 2. 当我在 49 个节点之一上运行 nodetool 命令时,我看到总共 50 个节点,其中单个节点处于关闭状态,我看到集群名称为“测试集群” 3. 每个节点上都安装了 datastax-agents,我还设置了 OpsCenter 来监控集群。在 OpsCenter 中,我仍然看到 50 个节点处于启动状态,集群名称为“测试集群”所以我的问题是为什么我看到这 3 个相同拓扑的不同描述,这是预期的吗?

另一个问题是,当我在单个节点上启动 Cassandra 时,我仍然看到它以某种方式尝试与其他节点通信,并且我不断收到集群名称不匹配 (Test Cluster != Single Node Test Cluster) 警告在控制台上的单个节点之前集群启动。

这是预期的还是 Cassandra 中的错误?

4

1 回答 1

3

是的,如果您从集群中删除一个节点,您需要通知集群的恢复它已经消失。

您可以通过在节点仍在集群中时停用节点或在节点消失时从另一个节点中删除节点来执行此操作。IE你不再有访问框。

如果您不执行上述任何一项操作,您仍然会在对方的 system.peers 表中看到该节点。

于 2015-03-28T03:38:06.800 回答