关于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"
}
}
]
}
查看节点磁盘情况判断:# df -h
原创不易,转载请注明出处:http://blog.csdn.net/qq_21835703/article/details/53502277