2016-03-11 146 views
1

據我所知,elasticsearch中的碎片是通過所有數據節點之間的內部機制分配的。Elasticsearch碎片重新分配

不過,我有以下幾點看法 -

  • ,如果我們沒有做任何索引,並增加了新的數據節點,碎片拿到2個節點之間分配。
  • 但是,如果已經完成了一些索引並且之後添加了新節點 那麼碎片不會自動分發。我必須通過羣集重新路由手動移動 。

這是預期的行爲嗎?

手頭的問題是,我剛開始只有一個節點,5個分片,沒有副本。該索引包含大約100 GB的數據。現在我想添加一個新的數據節點。

我的問題 -

  • 決定是否跨節點移動的碎片之前elasticsearch需要一些時間?
  • 對於已經存在索引數據的集羣,手動集羣重新路由是移動碎片的唯一方法嗎?

注 - 羣集重新路由工作正常。但是,這些問題將幫助我規劃未來。

TIA

回答

0

如果您需要添加一個節點後立即分發碎片,然後,你必須執行手動重新。即使你沒有手動運行,在彈性搜索之後均勻地分配你的碎片。

在那裏,你可以使用關於碎片重新平衡

index settings

"index.routing.allocation.total_shards_per_node": 1 

在`集羣設置

"transient":{ 
    "cluster.routing.allocation.cluster_concurrent_rebalance": 1 
} 

配置參數本身說明他們對於存在哪些配置選項,你可以修改值,並看看他們是如何爲你工作的。