0

我有一个运行 2.0.9 版的 cassandra 集群。Nodetool 从一开始就没有运行过(因为它没有被要求安排这些修复)。每个节点都有大约 8GB 的​​数据。这对我来说似乎相当小。当我尝试运行 nodetool repair 时,它似乎需要很长时间(2 天后未完成)。

我没有看到任何进展。我一直在阅读线程,他们告诉您检查 compactionstats 和 netstats 但那些表明没有流量。但是 nodetool repair 命令永远不会退出。这对我来说似乎不正常。我收到有关系统密钥空间正在修复并且正常的消息。但是,我们放入其中的实际数据不会返回任何内容。所有节点都已启动。我在 system.log (CentOS 6 BTW) 中检查了错误,但没有任何错误。我已经启动了一个命令来检查命令和响应的数量是否仍在增加(就是这种情况),但是我想知道这是否可能来自其他原因,或者这是否与 nodetool 修复直接相关。似乎没有任何 IO/net 饱和。所以昨天我又开始用工具 range-repair.py 进行修复。过去 12 小时没有额外的输出。最后的输出是:

INFO       2015-11-01 20:55:46,268 repair               line: 296 : [1/256] repairing range (-09214247901397780884, -09166106147119295777) in 100 steps for keyspace <all>

这种修复需要永远(或只是修复被挂起)的主要问题是我们想要升级 cassandra 以进行应用程序部署。该程序说首先进行nodetool修复。在开始升级之前这真的有必要吗?也许 nodetool 工作效率更高(您现在还有一个增量选项)。

谁能在这里帮助我?提前非常感谢!

4

1 回答 1

1

我不确定这是否完全解决了问题,但是在对整个集群进行滚动重启后,nodetool 修复似乎能够在以前没有完成的地方完成。对于另一个键空间,我遇到了一个问题,我必须一遍又一遍地启动该过程才能获得任何进展。我使用了 range_repair.py,它可以让我跳到某个标记,这样我就可以慢慢上升。最后,我使用了空运行和步骤选项(1 步)并将其定向到文件。然后我用 sed 过滤了第一列并执行了该文件。如果该命令似乎挂起,您可以记下它,按 CTRL-C 并稍后重新运行。通常它在我运行它的第二次或第三次时成功。

于 2015-11-02T20:24:52.243 回答