我们有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才能在整个集群上运行它?
我希望今天进行维修,因为周末我们的群集的负载要轻得多。感谢您的快速反馈!
答案 0 :(得分:2)
请注意,增量修复(Cassandra 2.2和更高版本中的默认修复)存在一些问题。推荐的解决方案是使用Cassandra Reaper之类的工具来安排您对全部子范围的维修。
http://thelastpickle.com/blog/2017/12/14/should-you-use-incremental-repair.html
答案 1 :(得分:0)
在每个节点上一个接一个地运行完全修复作为nodetool修复。禁用crone作业,因为nodetool repair -pr只修复主范围。修复需要时间取决于数据库大小。