如果在Cassandra中替换了一个节点,数据会自动复制到该节点吗?
我正在运行一个复制因子为3的3节点Cassandra群集。我最近不得不更换一个节点。其他两个节点中存在的数据是否会自动复制到新节点,还是我必须以某种方式手动复制?在2.x中默认情况下,是的。如果auto_bootstrap配置选项不在cassandra.yaml文件中,或者它被设置为True,那么一旦它联机,它就会流式传输它现在负责的所有数据。如果auto_bootstrap设置为False,则在调用nodetool rebuild之前,它不会执行此操作 但是,正如所指出的,如果您允许它自动流式传输数据,那么还有最后一步: 所有新节点运行后,在每个以前存在的节点上运行nodetool cleanup,以删除不再属于这些节点的键。在一个节点上等待清理完成,然后在下一个节点上运行nodetool清理 清洁可以安全地推迟到低使用时间 如果不运行“清理”,则所有旧数据位(移动到新节点的数据位)将保留在旧的3个节点上如果在Cassandra中替换了一个节点,数据会自动复制到该节点吗?,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,我正在运行一个复制因子为3的3节点Cassandra群集。我最近不得不更换一个节点。其他两个节点中存在的数据是否会自动复制到新节点,还是我必须以某种方式手动复制?在2.x中默认情况下,是的。如果auto_bootstrap配置选项不在cassandra.yaml文件中,或者它被设置为True,那么一旦它联机,它就会流式传输它现在负责的所有数据。如果auto_bootstrap设置为False,则在调用nodetool rebuild之前,它不会执行此操作 但是,正如所指出的,如果您允许它自动流式
编辑:此外,未能在帖子中提及,请确保您在种子列表中有一个种子集。当然,否则它将不知道在哪里查找数据。在2.x中默认情况下,是的。如果auto_bootstrap配置选项不在cassandra.yaml文件中,或者它被设置为True,那么一旦它联机,它就会流式传输它现在负责的所有数据。如果auto_bootstrap设置为False,则在调用nodetool rebuild之前,它不会执行此操作 但是,正如所指出的,如果您允许它自动流式传输数据,那么还有最后一步: 所有新节点运行后,在每个以前存在的节点上运行nodetool cleanup,以删除不再属于这些节点的键。在一个节点上等待清理完成,然后在下一个节点上运行nodetool清理 清洁可以安全地推迟到低使用时间 如果不运行“清理”,则所有旧数据位(移动到新节点的数据位)将保留在旧的3个节点上 编辑:此外,未能在帖子中提及,请确保您在种子列表中有一个种子集。当然,否则它将不知道在哪里查找数据