【问题标题】:Cassandra repair: why do I have to run -pr on every host in the cluster?Cassandra 修复:为什么我必须在集群中的每台主机上运行 -pr?
【发布时间】:2017-03-31 19:42:02
【问题描述】:

根据我读到的关于 Cassandra 反熵手动修复主题的所有资料,例如this one,如果我要使用“nodetool”分区程序范围(或 -pr)选项,我需要运行它整个集群中的所有主机:

注意:如果使用此选项,则必须在集群中的每个节点上运行 nodetool repair -pr 以修复所有数据。否则,部分范围的数据将无法修复。

除非上述段落是为了使用 -pr 来修复 整个 集群,否则对我来说没有意义。因为当 nodetool 在没有这个选项的情况下运行时,它会固定该节点上的所有范围:如果 RF=3,则范围包括主要的,加上来自相邻节点的次要和第三次。而使用 -pr 选项,它只修复主副本。

因此,如果有一个具有节点 A、B、C、D、E、F 的环,如果我的目标是修复 C,那么当我仅在 C 上运行“nodetool”或当我在 A、B 和 C 上运行“nodetool -pr”?

【问题讨论】:

    标签: cassandra-2.1


    【解决方案1】:

    我的理解是,如果你在节点 C 上运行 nodetool repair -pr,那么将被修复的范围只有 C 是主节点的范围。所以不是 C 是二级/三级的。

    所以评论说如果你想修复整个集群,那么你需要在每个节点上运行它。这是大多数人的意图,他们希望整个集群不断修复,而不会考虑单个节点。

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      相关资源
      最近更新 更多