2014-01-22 47 views
1

我們有2個節點的羣集ES不同步。當我們刪除一個索引時,並非羣集中的所有文件夾(在文件系統上)都被刪除,這在重啓一臺服務器時會導致一些問題。在Elasticsearch在索引中刪除

然後我們刪除索引被分配有一些奇怪的狀態,這表明集羣的健康是不是綠色的。

例子。我們與名someIndex刪除索引和刪除後,我們檢查文件系統時,可以看到:

節點1
ElasticSearch \ DATA \羣集名稱\節點\ 0 \指標\
ElasticSearch \ DATA \羣集名稱\節點\ 1 \指數\

節點2
ElasticSearch \ DATA \羣集名稱\節點\ 0 \指標\ ElasticSearch \ DATA \羣集名稱\節點\ 1個\ \指標someIndex(< - 仍然存在)

任何人都知道什麼是造成這個?

ES版本:0.90.5

回答

2

有每個在你的文件系統的兩個節點目錄(這些節點\ 0和節點\ 1)。

當您啓動Elasticsearch,你啓動一個節點(在ES-行話)。您的機器可以託管多個節點,如果您多次啓動Elasticsearch,就會發生這種情況。該default settings HTTP端口是9200-9300,這意味着,ES在這個範圍內尋找一個自由港,並結合其節點到它(同樣適用於transport module9300-9400真)

所以,如果你開始的ES當另一個仍在運行時,也就是說,它綁定到一個端口,你啓動第二個節點,ES將爲它創建一個新目錄。如果你發起重啓,可能會發生這種情況,但是ES在新節點啓動之前無法及時關閉。

但現在你有第三個節點的集羣和ES將指派碎片給它。然後執行羣集重啓或類似的操作,並在每臺機器上啓動一個節點。 ES無法找到分配給第三個節點的碎片,因爲它沒有啓動,並且會顯示紅色或黃色狀態,具體取決於第三個節點上存在哪些碎片。如果刪除索引數據,則不會從該缺失節點中刪除數據。

如果你不關心數據,你可以關機ES和刪除這些目錄或開始在每個機器兩個ES節點,然後再刪除索引。

然後,您可以將端口設置更改爲一個特定的端口,這將阻止第二個進程啓動,因爲它們將無法綁定到空閒端口。

+0

嗯,這可能是這種情況。那麼,如果我只在每臺服務器上運行一個節點,那麼每臺服務器上的clustername \ nodes \中不應該有多個文件夾呢?有沒有禁止多個節點的設置? – Marcus

+0

@Marcus打開'config/elasticsearch.yml'並取消註釋'node.max_local_storage_nodes:1'行。這樣,您只能從該安裝路徑啓動單個節點。 – javanna

+0

@javanna非常感謝! – Marcus

相關問題