Elasticsearch shard重新分配

时间:2016-03-11 06:15:18

标签: elasticsearch sharding

据我所知,elasticsearch中的分片是由所有数据节点之间的内部机制分配的。

但是,我有以下观察 -

  • 如果我们没有进行任何索引并且添加了新的数据节点,则分片将在2个节点之间分配。
  • 但是,如果已完成某些索引,则此后会添加新节点 那么分片不会自动分发。我必须搬家 它们通过集群重新路由手动完成。

这是预期的行为吗?

手头的问题是我开始时只有一个节点,5个分片,没有副本。该索引包含大约100 GB的数据。现在我想添加一个新的数据节点。

我的问题 -

  • 在决定跨节点移动分片之前,elasticsearch是否需要一些时间?
  • 对于已存在索引数据的群集,手动群集是否重新路由移动分片的唯一方法?

注意 - 群集重新路由工作正常。但是,这些问题将帮助我规划未来。

TIA

1 个答案:

答案 0 :(得分:0)

如果您需要在添加节点后立即分发分片,则必须手动执行重新路由。即使你没有手动运行它,经过时间弹性搜索均匀分配你的分片。

您可以使用一些关于分片重新平衡的配置选项

index settings

中的

"index.routing.allocation.total_shards_per_node": 1

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

配置参数本身解释它们的存在,您可以修改值并查看它们如何为您工作。