自动平衡ElasticSearch中的分片

时间:2018-10-16 22:00:38

标签: elasticsearch

在5.6.9版中,我们有4个ElasticSearch节点,对于某些先前的规则,它们在每个节点中具有不平衡数量的分片。

我们发现我们可以一次将一个碎片移动到另一个节点,但这非常慢。

除了创建使用ElasticSearch API平衡分片的脚本外,还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用集群重新路由进行此操作,它允许手动更改集群中各个分片的分配。查看文档Cluster Reroute

    POST /_cluster/reroute
{
    "commands" : [
        {
            "move" : {
                "index" : "test", "shard" : 0,
                "from_node" : "node1", "to_node" : "node2"
            }
        },
        {
          "allocate_replica" : {
                "index" : "test", "shard" : 1,
                "node" : "node3"
          }
        }
    ]
}

答案 1 :(得分:0)

我们发现了问题,系统没有自动重新平衡集群的索引,因为我们有cluster.routing.rebalance.enable = none

我们找到了信息here

集群/重新路由遇到的问题是,根据文档,系统将尝试再次实现自身平衡。无论哪种方式,谢谢您的帮助。