我正在运行一个复制因子为3的3节点Cassandra集群。我最近不得不替换其中一个节点。其他两个节点中存在的数据是否会自动复制到新节点,还是我必须以某种方式手动执行?
答案 0 :(得分:4)
默认情况下为2.x,是的。如果auto_bootstrap配置选项不在cassandra.yaml文件中,或者它设置为True,那么它将立即传输它现在负责的所有数据。在线。如果auto_bootstrap设置为False,那么在您调用nodetool rebuild之前它将不。
正如documentation所述,如果您允许它自动流式传输数据,那么最后一步是:
在所有新节点运行后,在每个先前存在的节点上运行nodetool cleanup以删除不再属于这些节点的密钥。等待在一个节点上完成清理,然后在下一个节点上运行nodetool cleanup。
可以安全地推迟清理,以减少使用时间。
如果你没有运行清理,那么所有旧数据(移动到新节点的数据)将保留在旧的3个节点上。
编辑:此外,在帖子中未提及,请确保在种子列表中有种子集。否则它当然不知道在哪里寻找数据。