解决ES数据偏移问题

关于Elasticsearch的三种角色在此就不多说了。

在实际生产环境中,可能因为设置的shards数量、shard的大小导致某个或多个数据节点的数据偏多

下面介绍解决方法:

移动前查看每个数据节点的磁盘情况:# df -h

1.设置允许集群rebalance
PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all" ,
        "cluster.routing.allocation.allow_rebalance" : "always" ,
        "cluster.routing.allocation.cluster_concurrent_rebalance" : "2"
    }
}

2.查看shards分布:curl es-data1:9200/_cat/shards
  查看es-data1上达到mb大小的shards:curl es-data1:9200/_cat/shards  |grep es-data1 |grep mb


3.移动es-data1上的shard 0到另一个节点es-data2上
POST /_cluster/reroute
{
    "commands" : [ {
        "move" :
            {
              "index" : "customer", "shard" : 0,
              "from_node" : "es-data1", "to_node" : "es-data2"
            }
        }
    ]
}

根据数据偏移情况重复执行步骤3,直到数据平衡

查看节点磁盘情况判断:# df -h



原创不易,转载请注明出处:http://blog.csdn.net/qq_21835703/article/details/53502277

你可能感兴趣的:(Elasticseach)