2rs*_*2ts 14 maintenance cassandra
您是否必须nodetool repair
在集群中的每个节点上运行,或者您只需要在一个节点上运行它,然后 Cassandra 会负责其余的工作?
Aar*_*ron 11
在查看文档时,我很难找到这方面的参考,但简短的回答是“是”,您需要nodetool repair
在集群中的每个节点上运行。我能找到的最接近的是关于修复节点的文档,它表明您不应一次在集群中的多个节点上运行修复。
您还可以使用标志运行修复-pr
,这将修复操作限制在当前节点负责的第一个令牌范围内。这减少了在其余节点上运行时的重复工作。
它的行为取决于您的配置、您使用的 Cassandra 版本以及您如何运行修复命令。
如果您只是nodetool repair
在集群中的单个节点上运行,它将修复该节点负责的所有数据(令牌范围)以及负责该数据的其他节点。
例如,如果您要nodetool repair
在给定集群中的单个节点上运行该命令:
也就是说,可以定义哪些主机和数据中心使用-hosts
和-dc
标志执行修复。此外,如果您使用-pr
标志(这将只挑选的第一个标记范围的节点负责),你必须运行nodetool repair -pr
在所有集群中的节点。
要记住的另一个标志是-inc
Cassandra 2.1 中包含的标志。此选项只会修复新数据(之前未修复的数据)。依赖它时要小心,特别是如果您经常删除数据。(更多关于这个)
要记住的另一件事是,在 Cassandra 中进行修复的默认方式可能会有所不同。从 Cassandra 2.1 开始,nodetool repair
它在运行时默认执行完整的顺序修复。您将需要查看您的版本的功能。
有关该主题的更多阅读:
https://www.datastax.com/dev/blog/repair-in-cassandra
归档时间: |
|
查看次数: |
17703 次 |
最近记录: |