2015-06-25 22 views
1

我開始了一個新的elasticsearch集羣並添加了一個新索引,然後關閉它。 當我嘗試再次啓動時,不再有活動的分片。所有碎片變得無效並且未分配。 我用下面這個指標設置:elasticsearch:重啓單個節點集羣時,所有主分片都變爲非活動狀態

"settings": { 
      "number_of_shards": 32, 
      "number_of_replicas": 3 
     } 

這裏是健康輸出:

{ 
    "cluster_name" : "sailcraft", 
    "status" : "red", 
    "timed_out" : false, 
    "number_of_nodes" : 1, 
    "number_of_data_nodes" : 1, 
    "active_primary_shards" : 0, 
    "active_shards" : 0, 
    "relocating_shards" : 0, 
    "initializing_shards" : 0, 
    "unassigned_shards" : 128, 
    "number_of_pending_tasks" : 0 
} 

這裏是same problem which has been marked solved。但我不認爲這是解決方案。

編輯:

這是同樣的問題,但我認爲文章沒有得到正確的答案。它表示如果我們有2個更多副本碎片,我們還需要2個節點。我閱讀了所有相關的文檔,並沒有任何這樣的限制。

EDIT2: 解決方案: 他設置index.recovery.initial_shards提供以下功能: 基本上,使用本地網關,「碎片」時,將被收回一旦其副本的法定人數是在節點之間找到集羣。 讓我們拿N分片,1副本(每個分片2副本)。默認(仲裁)意味着一旦找到分片的單個副本,它將被恢復。如果您有2個副本(3個副本),則只會在找到2個副本時恢復該分片。 您可以設置此設置,以防萬一您丟失了大量節點,並且仲裁的設置過於嚴格。你實際上可以將它設置爲「活動」索引(顯然,它處於「紅色」狀態,因爲不是所有碎片都被恢復)。

+0

您提供的鏈接是您的案例中「紅色」狀態的原因。 –

+0

這是同樣的問題,但我認爲後期劑量沒有得到正確的答案。它表示如果我們有2個更多副本碎片,我們還需要2個節點。我閱讀了所有相關的文檔,並沒有任何這樣的限制。 – nobody0day

回答

0

這裏的the documentation提到這一點。事實上,這不是很明顯,但它的存在:

index.recovery.initial_shards

當使用本地網關只有當能夠在集羣中被分配定額碎片特定的碎片被回收。它可以被設置爲:

法定人數(默認)

法定人數-1(或半)

全1。

也支持數值,例如, 1.

如果你真的想你的節點運行,在elasticsearch.yml文件中設置index.recovery.initial_shards: 1

+0

非常感謝。跟隨你的帖子我完全解決了這個問題。 – nobody0day

相關問題