2014-02-27 98 views
1

我正在尋找一些幫助來弄清楚如何清理在Zookeeper中看起來像是腐敗的東西。我們的設置在Solr Cloud中運行良好。某個時候,其中一個集羣節點上的根分區變滿,系統關閉。在我們恢復之後,Solr沒有迴應,也無法啓動。如何清除Zookeeper損壞

它看起來像動物園管理員數據中存在腐敗。每當客戶端嘗試訪問節點/監督/排隊它會殺死一個錯誤的連接:

..."KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /overseer/queue"

開放ZK客戶端外殼讓我們列出的其它節點,但如果我們試圖刪除/列表/在/ overseer節點上清除/ etc將失敗,並顯示此錯誤。

是否有任何手動步驟可以解決這個問題?任何幫助,將不勝感激。

編輯:另外,它看起來像/ overseer/queue節點下有超過200k個子節點。也許這與它有關,但如果我們甚至不能將它們列出,我們不能刪除子節點。

+0

SolrCloud的結構是什麼?你能重新啓動整個雲嗎? – buddy86

回答

1

Zookeeper數據庫沒有損壞,但動物園管理員對最大響應大小有限制,並且列出了一個znode的200k個孩子超過了這個最大響應大小。

要解決此問題,您可以將jute.maxbuffer設置爲較大的值,以便列出並刪除隊列下的節點。您需要更新所有服務器上的此設置以及您用於清理的客戶端。

有一個開放的bug來解決這個問題,ZOOKEEPER-1162