Cassandra Cleanup是否从现有群集中删除旧数据

我有一个带有9 TB数据的5节点cassandra集群,并计划在集群中再添加5个节点 . 添加新节点后,将启动负载 balancer ,并将分区键的子范围映射到新节点 . 什么时候我应该给nodetool清理 . 是否在启动新节点后立即进行nodetool清理将从群集中的旧节点中删除属于该子范围的旧数据 .

回答(1)

3 years ago

DataStax doc Adding nodes to an existing cluster提到:

在每个新节点上启动Cassandra . 在节点初始化之间留出两分钟 . 您可以使用nodetool netstats监视启动和数据流过程 . 在所有新节点运行后,在每个先前存在的节点上运行nodetool cleanup以删除不再属于这些节点的密钥 . 等待清理在一个节点上完成,然后再执行下一个节点 . 对于低使用时间,可以安全地推迟清理 .

这似乎表明,一旦所有新节点都启动,运行和完全自举,您应该运行 nodetool cleanup . 此过程将从旧节点上的子范围中删除旧数据 . 如上所示,确保在每个旧节点上运行 nodetool cleanup ,一次一个节点 .