经过一些IT清理后,我们注意到我们应该对一个列族进行全面清理/恢复。我们认为Cassandra有重复的数据,它没有清理。是否可以清除并让Cassandra从头开始重建单个列族或快照?
在升级过程中,某些节点决定重新加入群集,而不仅仅是重新启动。在此过程中nodetool netstats
显示了将新数据文件传输到原始节点的节点。群集稳定,但磁盘使用量大幅增长。我想我们将迁移到一个新环,但同时我想看看我是否可以减少一些磁盘使用量。戒指很稳定,维修也很好。
如果我们能够清理一个cf,它可以减少磁盘空间的使用量。
nodetool cleanup
并没有减少sstables的大小。
如果我们有一个新节点加入群集,它将使用大约50%的磁盘空间作为其他节点。
我们可以做nodetool decommision
&&的舞蹈。 nodetool join
,但这不会很有趣:)
我们已经验证了环中的数据是一致的,并且修复显示数据在整个环中是一致的。
答案 0 :(得分:0)
添加新节点并成功运行修复意味着已经(已)分配给该节点的分区范围的数据已流式传输到新节点。
如果在发生这种情况之后,运行nodetool cleanup,则会清除不再需要的其他节点的所有数据。
如果您仍然看到某些节点的数据多于其他节点,则可能是因为您的某些分区中有一些较宽的行,或者因为您的节点不平衡。不应该有任何数据重复方案(如果你能证明这一点那么它将是值得的)。
如果您希望在节点间更均匀地分布数据(或设计数据模型以避免上述宽行),您可以在OpsCenter中运行重新平衡或手动重新分配令牌。
答案 1 :(得分:0)
使用nodetool compact清理所有墓碑并将所有更新的记录压缩为单个记录。
{nodetool compact
}