Cassandra:群集或数据中心的所有节点上的主要范围完全修复

时间:2017-09-18 05:28:22

标签: cassandra cassandra-3.0 repair

正如大家都同意的那样,Cassandra修复是必要的,但非常昂贵并且容易出现故障,如果群集中的任何节点在群集中的任何其他节点上运行时,群集中的任何节点都会停止运行,那么大部分时间都会卡住。我正在使用以下命令以滚动方式在主要范围上运行完整顺序修复:

node repair -pr -full -seq

但有疑问,是否足以在数据中心的每个节点上运行此修复(我有4个不同的数据中心),还是需要在整个集群的每个节点上运行?我找到了一些关于这个主题的文档,但语言没有正确回答这个问题。例如3.1 Primary range repair

2 个答案:

答案 0 :(得分:3)

更新:我实际上错了,这里认为响两个DC而不是单个,实际令牌Ring更多:

    | DC  | Node | Token |
    |-----|------|-------|
    | DC1 |node1 |   1   |     
    | DC2 |node2 |   5   |
    | DC1 |node3 |   10  |
    | DC2 |node4 |   15  |
    | DC1 |node5 |   20  |
    | DC2 |node6 |   25  |

此处node4的主要范围是11-15,而不是6-15(这是主要范围+本地范围)。您必须在每个节点上执行-pr。删除原文以免引起混淆。

答案 1 :(得分:3)

使用repair -pr -full,您必须在群集中的每个节点上运行修复。请参阅此blog post几年前我写的有关原因的详细说明。