Cassandra:挂节点工具修复

时间:2016-09-26 06:48:59

标签: cassandra nodetool

我们有三个区域用于cassandra集群,每个集群有2个节点,共6个。然后我们又增加了3个区域,现在我们在集群中有12个cassandra节点。添加节点后,我们更新了复制因子并启动了nodetool修复。但是这个命令已经挂了超过48小时而尚未完成。当我们查看日志1或2时AntiEntropySessions仍在等待,因为某些CF未完全同步。所有AntiEntropySessions都成功地从所有CF节点的所有节点获取merkle树。但是有些维修,但是有些节点没有为某些节点完成,因此它会导致待处理的AntiEntropySessions并且维修工作正在进行。

我们正在使用Cassandra 1.1.12。我们现在无法升级Cassandra。 我们已重新启动节点并再次启动修复,但它仍然挂起。 我们观察到一个CF在初始3个区域中频繁读写,在修复期间处于活动状态,无法在所有时间内完全同步。

在运行修复时是否有必要在任何CF中都不应该进行任何读/写操作? 或者建议我这里可能出现什么问题?

1 个答案:

答案 0 :(得分:1)

Cassandra 1.1已经很老了所以很难记住确切的问题,但是流媒体存在问题,这可能会挂起。有些原因是如果读取超时或连接被重置。虽然你已经过了1.1.11但是你可以尝试进行子修复。

尝试找到一个适当的令牌范围,您可以在一小时内修复(继续运行越来越小的范围,直到您可以完成它),设置几个小时的超时。期望一些修复失败(超时),所以只需重试它们直到它们完成。如果你经过多次重试后仍然无法获得它,那么继续使该子范围变小,但即使这样,如果你的分区非常宽(可以检查nodetool cfstats)会使情况更糟,也可能会出现问题。

完成修复后,请像疯了一样升级。

相关问题