我创建了一个包含50个节点的Apache Cassandra 2.1.2集群。我将群集命名为" Test Cluster",默认值。然后,为了进行一些测试,我将一个节点从50个节点集群中分离出来。我关闭了Cassandra,删除了数据dirs,刷新了nodetool。然后我编辑了单节点集群并将其称为"单节点测试集群"我适当地编辑了种子,cluster_name和listen_address字段。我还正确设置了JMX。现在发生了什么。 1.当我在单个节点上运行nodetool状态时,我看到只有一个节点已启动并正在运行。如果我运行nodetool describecluster,我会看到新的集群名称 - "单节点测试集群" 2.当我在49个节点之一上运行nodetool命令时,我看到总共有50个节点,单个节点为down,我看到群集名称为" Test Cluster" 3.每个节点上都安装了datastax-agent,我还设置了OpsCenter来监控集群。在OpsCenter中,我仍然看到50个节点为up,群集名称为" Test Cluster" 所以我的问题是为什么我看到这3种不同的相同拓扑描述,这是预期的吗?
另一个问题是,当我在单个节点上启动Cassandra时,我仍然看到它以某种方式尝试与其他节点进行通信,并且我一直在控制台上获得群集名称不匹配(测试群集!=单节点测试群集)WARN单节点集群启动。
这是否符合预期,或者这是Cassandra中的错误?
答案 0 :(得分:3)
如果您从群集中删除某个节点,则需要通知群集还原它已消失。
您可以通过在节点仍处于群集中时停用该节点,或者在节点消失时将nodetool从另一个节点中删除节点来执行此操作。 I.E.您无法再访问该框。
如果您不同时执行上述操作,您仍会在另一个system.peers表中看到该节点。