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