【问题标题】:Cassandra cleanup on several servers at once一次在多台服务器上清理 Cassandra
【发布时间】:2015-08-13 05:17:41
【问题描述】:

我们有一个大型 Cassandra 集群 18 台服务器(在一台服务器上接近 5T 数据)

http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_add_node_to_cluster_t.html - 我们在此文档之后添加了一个新节点。

添加新服务器后,我们开始清理数据的过程(nodetool cleanup)

在文档中建议:在所有新节点都运行后,在每个先前存在的节点上运行 nodetool cleanup 以删除不再属于这些节点的密钥。等待清理在一个节点上完成,然后再执行下一个)

但在我们的案例中,清理一台服务器需要将近 2 到 3 天。 我的问题是我可以在多台服务器上立即开始清理,2 或 3 ...

或者可能导致数据丢失?

更多信息。

我们使用 cassandra 2.0.13 和 vnodes 。此外,我们将文件保存在 cassandra 中。

复制因子 = 3

【问题讨论】:

    标签: cassandra cassandra-2.0 nodetool


    【解决方案1】:

    清理不涉及任何其他节点,因此并行运行是安全的。但是,您可能希望一次运行一个以减少对性能的影响,因为清理可能会使用大量磁盘 I/O。

    【讨论】:

    • 作为记录,Richard 是对的,但在 Cassandra 2.1 及更高版本中,还有另一个问题 - 清理是在 CF 中的所有 sstable 上并行运行的,使用所有压缩器。该节点上的压缩将落后,并且根据摄取量,磁盘上可能有数百或数千个 sstable,这可能会显着影响读取性能。因此,一次在一个节点上运行清理可能有助于在清理期间保持读取的低延迟。
    猜你喜欢
    • 2015-03-19
    • 2022-11-15
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2022-07-05
    • 2018-01-20
    • 2011-10-21
    相关资源
    最近更新 更多