我创建了6个集合,每个集合有3个分片和2个副本(solr版本5.5.0)。几天我的设置工作正常。但几天后我收到以下错误:
尝试恢复时出错。 核心= Collection1_shard3_replica2:org.apache.solr.common.SolrException: 在等待4000毫秒后没有找到注册的领导者,收集: Collection1切片:shard3 at org.apache.solr.common.cloud.ZkStateReader.getLeaderRetry(ZkStateReader.java:607) 在 org.apache.solr.common.cloud.ZkStateReader.getLeaderRetry(ZkStateReader.java:593) 在 org.apache.solr.cloud.RecoveryStrategy.doRecovery(RecoveryStrategy.java:308) 在 org.apache.solr.cloud.RecoveryStrategy.run(RecoveryStrategy.java:224) 在 java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)at org.apache.solr.common.util.ExecutorUtil $ MDCAwareThreadPoolExecutor $ 1.run(ExecutorUtil.java:231) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)
我尝试重新启动zookeeper和solr两者,也将堆内存增加到10 GB。但仍然有问题。
答案 0 :(得分:0)
我们遇到了与3节点机器相同的问题(每个节点6个CPU和30GB内存)。以下是我试图找到解决方案的步骤。
我们已经尝试过但没有用过的东西:
是什么原因解决了"没有注册的领导者发现":
由于这种高IO等待,副本很难保持同步。 我减少了工作量(发送给solr的消息),因此索引没有像以前那样快速增长。这有助于使一切恢复正常。我的Solr集群现在已经绿色了一段时间,并没有遇到任何选举问题"。 IO等待时间降至25毫秒以下,CPU使用率约为70%,而不是几乎100%。
通常,解决这样的问题非常困难。由于Solr集群可能会工作几天(甚至在其他帖子中看到几个月)。监控IO等待甚至流量进入Solr节点。如果出现流量高峰,(每日!)指数可能会变得过大。您还可以添加更多节点和拆分分片,从而减少一台计算机的负载。我选择减少Solr机器的流量,因为我们使用Solr作为审计存储,并且不需要部分审计日志记录。