如果在Cassandra中替换节点,数据会自动复制到该节点吗?

时间:2017-04-06 18:33:01

标签: cassandra cassandra-2.0

我正在运行一个复制因子为3的3节点Cassandra集群。我最近不得不替换其中一个节点。其他两个节点中存在的数据是否会自动复制到新节点,还是我必须以某种方式手动执行?

1 个答案:

答案 0 :(得分:4)

默认情况下为2.x,是的。如果auto_bootstrap配置选项不在cassandra.yaml文件中,或者它设置为True,那么它将立即传输它现在负责的所有数据。在线。如果auto_bootstrap设置为False,那么在您调用nodetool rebuild之前它将

正如documentation所述,如果您允许它自动流式传输数据,那么最后一步是:

  

在所有新节点运行后,在每个先前存在的节点上运行nodetool cleanup以删除不再属于这些节点的密钥。等待在一个节点上完成清理,然后在下一个节点上运行nodetool cleanup。

     

可以安全地推迟清理,以减少使用时间。

如果你没有运行清理,那么所有旧数据(移动到新节点的数据)将保留在旧的3个节点上。

编辑:此外,在帖子中未提及,请确保在种子列表中有种子集。否则它当然不知道在哪里寻找数据。