搜索引擎

ES集群Unassigned(脑裂现象)

2020-02-24  本文已影响0人  久伴_不离

1. 现象:

问题如图片类似,后台启动ES集群,由三个节点组成,集群健康值为 yellow,节点只有主分片,副本状态为:Unassigned

2. 原因:

在ES磁盘分配分片控制策略中,为了保护数据节点的安全,ES对磁盘进行了限额,并会定时检查各节点数据目录的使用情况:

cluster.info.update.interval // 默认30秒

在达到

cluster.routing.allocation.disk.watermark.low // 默认85%

时,新索引分片就不会分配到这个节点上了。在达到

cluster.routing.allocation.disk.watermark.high // 默认 90%

时,就会触发该节点现存分片的数据均衡,把数据挪到其他节点上去。

通过shell 客户端执行 df -h ,查询到es集群所在的路径 /home/app 的磁盘使用率 Use%值为 86%,超过了最低值 85%,导致重启后,副本索引分片不会分配到es集群中的节点上。

3. 如何修改:

方案一:

删除es集群所在路径不必要大文件,如旧的日志文件,临时文件等,使 Use% 值小于 85%。

方案二:

修改 ES分片控制策略,提高cluster.routing.allocation.disk.watermark.low的值,该值大于当前 ES 集群所在路径 %Use的值。

修改示例:

curl -XPUT localhost:9200/_cluster/settings -d '{

    "transient": {

        "cluster.routing.allocation.disk.watermark.low": "90%",

        "cluster.routing.allocation.disk.watermark.high": "95%"

    }

}'

或使用postman

4. 参考:

elasticsearch问题解决之分片副本Unassigned: https://www.cnblogs.com/carryLess/p/9452000.html

《kibana中文指南》中ElasticSearch- 架构原理- shard的allocate控制 章节。

上一篇 下一篇

猜你喜欢

热点阅读