我们有一个5节点的cassandra集群。 cassandra版本是2.07。操作系统是Oracle Enterprise Linux 6.5。
Java环境是:
-bash-4.1$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
节点修复随机挂起。输出日志将显示:
-------------- Repairing... ------------------------------------------------
[2014-05-05 20:00:02,305] Starting repair command #7, repairing 728 ranges for keyspace ???
它只是挂起而没有取得任何进展。
知道如何找到问题的根本原因吗?
谢谢!
答案 0 :(得分:0)
我遇到了与cassandra 2.0.7相同的问题。通常它在向复制伙伴节点发送merkle树请求之后动手,然后无法创建自己的快照以将该树发送回自身。所以日志消息看起来像这样:
INFO [RepairJobTask:1] 2014-06-10 18:56:42,176 RepairJob.java (line 134) [repair #3c663fb1-f0ce-11e3-ac99-f9b8874f4c5e] requesting merkle trees for <CF_Name> (to [/10.0.4.101, /10.0.2.91, /10.0.3.91, /10.0.3.111, /10.0.4.111, /10.0.4.92, /10.0.2.101, /10.0.3.101])
推进修复的唯一方法是从该列表中的某个节点(而不是修复节点本身)重新启动cassandra。这会引发一些错误,但至少其余的修复将继续。