Cassandra集群旧数据未在新节点中复制

时间:2014-12-04 09:17:32

标签: cassandra cql cassandra-2.0 cql3 cqlsh

我在本地系统上安装了apache cassandra以进行测试。通过1个系统(1个节点),我能够在数据库中进行读/写和查询。我添加了另一个节点并创建了一个集群。现在我在我的系统上写入的数据被复制到其他节点上,反之亦然,但是我的系统早期添加新节点时所存在的数据不会被复制。尽管Keyspace和表存在于新节点上,但它们都是空的。将新节点添加到群集时,我做错了吗?

3 个答案:

答案 0 :(得分:1)

我最好的猜测是你关闭了auto_bootstrap(默认情况下它是ON)。来自文档:

  

auto_bootstrap       (默认值:true)此设置已从默认配置中删除。它使新的(非种子)节点自动将正确的数据迁移到自己。在初始化没有数据的新集群时,添加auto_bootstrap:false。

解决此问题的最简单方法是在节点上运行修复,以确保它获取缺少的任何数据。

http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_repair_nodes_c.html

答案 1 :(得分:0)

如果新节点上的数据不是最新的,只需在新节点上运行它。

运行$ CASSANDRA_HOME / bin / nodetool rebuild

以cqlsh身份登录并验证新节点是否已收到数据。

另请参阅下面的内容 -

http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_add_dc_to_cluster_t.html

答案 2 :(得分:0)

如果您有正确的种子和复制设置。但数据仍然没有被复制到新的数据中心。请使用nodetool repair选项执行-full将数据复制到新的数据中心节点。