上周末,我试图为我们的Cassandra集群执行完整的Solr重新索引。似乎两个节点比其他三个节点花费的时间更长,实际上它们在其他节点完成后会持续数小时。最后它似乎已经完成了,至少在网络控制台中他们都说过#34; no"用于Web控制台中的索引字段。
不幸的是,大约一个小时后,这两个节点中的一个完全没有响应,最终不得不重新启动。
今天我看着这些节点,并且看起来没有任何问题的3个人都声称拥有大约1480万个文档左右,这就是它应该是什么。然而,两个被卡住或永远停留的东西(包括极度无反应的那个)分别只有9和700万。这是一个巨大的差异,告诉我他们没有正确完成。
所以,要解决这个问题,我有两个问题:
1)由于这是一个完整的重新索引,是对模式实施的更改,因此完整索引的原因,好吗?换句话说,它只是索引部分没有完成,所以我可以只运行一个常规的重新索引来恢复它应该的方式吗?
2)假设我不必运行完整的重新索引,我是否可以在两个不完整的节点上运行一个就地重新索引?从时间的角度来看,这将是理想的,因为无论如何我必须在数小时之后完成它,并且它有望在一夜之间完成。
只是想知道如何继续,因为我过去没有遇到过这个问题。
答案 0 :(得分:0)
关于你的问题:
1)是的,您可以通过设置reindex = true,deleteAll = false来重新加载就地重建索引。
2)是的,您只能通过在每个节点上调用重新加载并设置reindex = true,deleteAll = false,distributed = false来在失败的节点上运行就地重新索引。
查看:http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/srch/srchReldCore.html
无论如何,首先要了解这些节点失败的原因是好的:这种行为看起来像是内存不足错误,但是你的日志中是否有例外?