2016-09-08 72 views
0

集羣elasticsearch有一個很大的問題。我有3個節點,一個節點停止彈性搜索,並且集羣變爲紅色,我已經用service elasticsearch restart重新啓動所有節點,現在所有節點都已連接並開始重新分割,但在主節點中約兩個小時後,一個Elasticsearch進程使用100 %的CPU,並沒有響應端口9200/9300,所以羣集下降...每當羣集重新啓動時重複,無論主人 我不知道該怎麼做,我絕望,有人可以幫我 ?Elasticsearch集羣在重新分片期間失敗

UPDATE 簇的配置是:

cluster.name: es-cluster 
node.name: es-node1 
bootstrap.mlockall: true 
discovery.zen.ping.unicast.hosts: ["ec2-52-208-103-xxx.eu-west-1.compute.amazonaws.com", "ec2-52-51-160-xxx.eu-west-1.compute.amazonaws.com", "ec2-52-208-167-xxx.eu-west-1.compute.amazonaws.com"] 
discovery.zen.minimum_master_nodes: 2 
discovery.zen.ping.multicast.enabled: false 
node.master: true 
node.data: true 
network.bind_host: 0.0.0.0 
network.publish_host: ec2-52-208-103-xxx.eu-west-1.compute.amazonaws.com 

是對所有節點的異常network.publish_host和相同的結構node.name 現在的集羣ID減少爲2個節點和resharding正在進行,完成時,我可以無論如何使用集羣? 也許這是錯誤的配置?它可以正常工作數月

+0

你有多少數據?如果數據量充足,如果配置不正確,羣集可能需要幾個小時才能重新啓動。 – Val

+0

是的,我說,但主節點停止工作,集羣關閉,現在發佈配置 – Steph

回答

0

什麼版本的Elasticsearch?根據您可能遇到的錯誤處理問題。

你的集羣處於什麼狀態?檢查/ _cluster/health

檢查日誌以查找每個節點上的錯誤。可能所有的節點都是垃圾收集和內存不足。如果是這樣,日誌將會充滿垃圾收集相關的警告,並且可能還有一些OutOfMemoryException。這將完全解釋他們沒有反應;這可能會導致集羣管理的各種問題。這就是爲什麼他們建議在較大的設置中將主節點與數據節點分開。

修復無響應的節點後(即停止索引,如果仍然存在,請重新啓動(如果沒有幫助)。您可以嘗試使用/ _cat/shards和/ _cat/indices apis來確定哪些索引有問題。日誌也會告訴你是否有任何特定的碎片問題。

此時,您的羣集可能是紅色,可能是由於您之前重新啓動(不要執行此操作,這是將羣集從黃色變爲紅色的確定方法)。所以你可能會失去一些數據。您可能還有幾個未分配的碎片。如果您仍然有主分片,可以嘗試將副本數減少到0,然後再次增加(危險,小心)。這有時可以幫助推動羣集恢復健康。或者,如果您不關心受影響的索引,請刪除它們。

在快樂的情況下,您的羣集是黃色的,您可以嘗試添加更多節點並在那裏重新路由碎片。在您的羣集變綠後,您可以嘗試逐個取下有問題的節點(永遠不要在黃色羣集上執行此操作)。

如果/當你啓動並運行,你需要解決你內存不足的原因,否則會再次發生。這不是一個無限的數據存儲。您可能要麼運行昂貴的查詢,要麼索引過多的數據,或者做其他明顯無法擴展的內容。

幾個星期前,我有類似的情況,並導致它失控的聚合查詢結合大量的字段數據在堆上(這是一個1.x集羣)的碎片。此外,我們遇到了1.7.4的已知問題,這些問題阻礙了集羣的重新平衡。我將其修改爲如下:1)刪除舊數據,我不需要減少分片大小2)增加分片數量,以便每個分片更小3)修復查詢以降低成本。 4)升級到1.7.5,以防止同樣的錯誤再次造成我的羣集。

+0

我使用ES 2.3.3 - 但是如果我停止索引,應用程序可以繼續在Elasticsearch上寫日誌? – Steph

+0

如果您的羣集正在宕機,請注意什麼? –