2017-12-18 450 views
-1

我已經創建了6個集合,每個集合有3個分片和2個副本(solr版本5.5.0)。幾天後我的設置工作正常。但幾天之後,我收到以下錯誤:Solr雲:等待4000ms後未找到註冊的領導者

Error while trying to recover. core=Collection1_shard3_replica2:org.apache.solr.common.SolrException: No registered leader was found after waiting for 4000ms , collection: Collection1 slice: shard3 at org.apache.solr.common.cloud.ZkStateReader.getLeaderRetry(ZkStateReader.java:607) at org.apache.solr.common.cloud.ZkStateReader.getLeaderRetry(ZkStateReader.java:593) at org.apache.solr.cloud.RecoveryStrategy.doRecovery(RecoveryStrategy.java:308) at org.apache.solr.cloud.RecoveryStrategy.run(RecoveryStrategy.java:224) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

我試圖重新啓動飼養員和Solr都,也增加堆內存10 GB。但仍然有問題。

+0

你在(K)VM或裸機上運行? – bigdatadev

+0

你的規格是什麼?你使用了多少臺機器和多少個CPU?你的環境是否被克伯化? – bigdatadev

回答

-1

我們遇到與3節點機器相同的問題(每個節點6個CPU和30GB內存)。以下是我試圖找到解決方案的步驟。

我們已經嘗試過,並沒有工作:

  1. 停止Solr的進程並重新啓動Solr的JVM
  2. 重新收集
  3. 增加/減少內存,但是這只是暫時的修復一天左右
  4. Solr GC調整: https://wiki.apache.org/solr/SolrPerformanceProblems#GC_pause_problems

什麼固定的「沒有註冊的領導者發現」問題:

  1. 減少碎片的數量,基本上我們oversharding。我們將碎片的數量從6個減少到3個,並保留了3個副本。這意味着每個節點現在有3個碎片。
  2. 但是,因爲我們每秒鐘編制了10,000條消息的索引。我也想知道我們的CPU在做什麼。所以我監視了CPU負載和CPU IO。我發現CPU一直在最大限度地工作,造成了很高的IO等待時間,我認爲這造成了最大的麻煩(見下圖)。

由於IO等待時間很長,複製品很難保持同步。 我減少了工作量(發送到solr的消息),以便索引不像以前那樣快速增長。這有助於使一切恢復正常。我的Solr集羣現在是綠色的一段時間,並沒有遇到任何「選舉問題」。 IO等待時間減少到25ms以下,CPU使用率約爲70%,而不是幾乎100%。

一般來說,解決這樣的問題是非常困難的。由於Solr集羣可能會在幾天內正常工作(甚至在其他帖子中看過幾個月)。監視進入Solr節點的IO等待甚至流量。如果發生交通峯值,(每日!)指數可能變得太大。您也可以添加更多節點和分割碎片,這可以減少一臺機器的負載。我選擇減少流向Solr機器的流量,因爲我們使用Solr作爲審計存儲,並且不需要審計日誌的一部分。

CPU load on one of the Solr Hosts enter image description here

+0

這應該作爲對原始問題的評論或作爲單獨問題發佈。另外 - 如果您尚未使用它,請務必使用外部動物園管理員合奏進行測試。 – MatsLindh

+0

這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](https://stackoverflow.com/questions/ask)來提問。您也可以[添加賞金](https://stackoverflow.com/help/privileges/set-bounties)來更多地關注這個問題。 - [來自評論](/ review/low-quality-posts/18901616) – iklinac

+0

我認爲我的帖子現在正確回答問題 – bigdatadev