【发布时间】:2018-09-30 07:41:46
【问题描述】:
我们在向 Cassandra 集群添加节点时遇到了麻烦,我的团队想知道是否有人能发现我们可能做错的任何事情,或者分享他们的最佳实践。这些节点以前是集群的成员,但已被删除,现在我们正在尝试重新添加它们。节点似乎已被适当地删除:nodetool removenode 已成功完成,现有节点上的 nodetool 状态仅显示预期的节点,而没有显示新节点。在尝试再次添加节点之前,集群可以正常运行一两周。
在再次将这些节点添加到集群之前,所有数据目录都已擦除干净。然后我们使用自动引导添加了第一个新节点,它似乎很好地加入了集群,从加入状态转移到正常状态。到目前为止一切顺利......“描述集群”似乎表明一切都是一致的,我们正要对现有节点进行清理,然后修复,然后再添加更多节点。
但后来事情开始出错了。不知何故,这个新节点似乎知道其他先前删除的节点,将它们显示为已关闭且无法访问(这是真的,但现在它们是如何处理的呢?)。对新节点的读取请求经常失败,主要是因为找不到数据。为了避免灾难,新节点被退役并最终被暗杀。我的集群(和应用程序)又开心起来了。
是否有任何我们可能遗漏的添加(或删除节点)的前置或后置步骤?我遵循了有关添加和删除 Cassandra 节点的许多其他问题的建议。在我再次尝试将其添加为节点之前,是否应该在机器上执行完整的 osreload?
感谢您的建议。同样,这里的许多其他问题对我有很大帮助,但并不完全是这种特殊情况。
【问题讨论】:
-
我也有类似的问题。如果您解决了,发布的答案会很有帮助。这是 cassandra 的一个非常缺乏记录的区域
-
你能在这个奇怪的行为期间发布系统日志消息吗?
-
嘿亨利,您删除的节点是种子节点吗?如果是,您是否从所有 cassandra.yaml 文件种子列表中删除了它的 ip?
-
你在
cassandra.yaml中的配置是什么,尤其是告密者... -
您确定您确实删除了所有数据,包括来自系统键空间的数据?
标签: cassandra