【问题标题】:Whether Cassandra Cleanup removes old data from existing clusterCassandra Cleanup 是否从现有集群中删除旧数据
【发布时间】:2014-11-26 04:55:30
【问题描述】:

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

【问题讨论】:

    标签: cassandra nodetool


    【解决方案1】:

    DataStax 文档Adding nodes to an existing cluster 提到了这一点:

    1. 在每个新节点上启动 Cassandra。在节点之间留出两分钟 初始化。您可以监控启动和数据流 使用 nodetool netstats 处理。

    2. 在所有新节点都运行之后,运行 nodetool cleanup 在每个先前存在的节点上删除 不再属于这些节点的密钥。等待清理到 在执行下一个节点之前在一个节点上完成。清理可能是安全的 推迟到低使用时间。

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

    【讨论】:

    • 我有一个数据量约为 6 TB 的集群。在我启动新节点后,初始化将在 2 分钟内结束。如果是,则 3 TB 数据的负载平衡可能需要更多时间,如果我在负载平衡时运行 nodetool cleanup,它可以从旧节点中删除数据。那么如何才能知道 load_balancing 的进度以及何时结束,然后才能安全地发出 nodetool cleanup 命令呢?
    • @venkatsam 运行nodetool status 应该可以让您了解负载平衡状态/进度。
    猜你喜欢
    • 2019-02-28
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多