2016-03-11 106 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 
} 

配置参数本身说明他们对于存在哪些配置选项,你可以修改值,并看看他们是如何为你工作的。