【问题标题】:Best practices to run nodetool repair on the full cluster在整个集群上运行 nodetool repair 的最佳实践
【发布时间】:2019-03-18 04:31:54
【问题描述】:

我们有 6 个节点的 cassandra 集群。我们使用的是 cassandra 2.2.8 版。我是团队的新成员,也是 cassandra 的新手。我现在拥有 cassandra 集群,但没有太多关于上次修复运行时间等的部落知识。几周前我更换了一个死节点,现在希望在整个集群上运行 nodetool 修复。我看到在节点“nodetool repair -pr”之一上运行了一个 cron 作业。我有两个问题。我已经搜索了这些主题,但没有找到明确的答案。

问题 1:我应该运行哪个命令来对集群进行全面修复?如果每天在一个节点上运行“nodetool repair -pr”,运行完全修复会产生任何后果吗?(当我开始完全修复时,我将停止 cron 作业“nodetool repair -pr”)。

问题2:我在网上看到“nodetool repair -pr”需要在每个节点上运行?我得到了不同的答案。我使用的是 cassandra 2.2.8,所以它真的需要在所有节点上单独运行还是在一个节点上运行这个 cron 才能为整个集群运行它?

我希望今天进行修复,因为周末我们的集群上的负载要轻得多。非常感谢您的快速反馈!

【问题讨论】:

  • 您应该在每个节点上依次运行repair -full -pr,并确保整个修复过程在宽限期之前完成。
  • 您应该在每个节点上依次运行repair -full -pr,并确保整个修复过程在宽限期之前完成。

标签: cassandra cassandra-2.0 cassandra-3.0


【解决方案1】:

请注意增量修复(Cassandra 2.2 及更高版本中的默认值)存在一些问题。推荐的解决方案是使用 Cassandra Reaper 之类的工具来协调您的修复,以完成整个子范围。

http://thelastpickle.com/blog/2017/12/14/should-you-use-incremental-repair.html

http://cassandra-reaper.io/

【讨论】:

  • 感谢您的提醒。我会通读 cassandra reaper。同时,在所有节点上一个一个地运行 nodetool repair -pr 是否安全?是否存在与此相关的风险?
【解决方案2】:

在每个节点上一个一个地运行完全修复作为nodetool修复。禁用 cron 作业,因为 nodetool repair -pr 仅修复主要范围。修复所需时间取决于数据库大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 2018-12-10
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 2011-06-28
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多