es 报错cannot allocate because allocation is not permitted to any of the nodes


0.现象

es 集群报red ,有unassigned shared ,
用命令 curl localhost:9200/_cat/shards |grep UNASSIGNED 可以查看。
即使你马上加节点,还是没有改善。新节点并不会正常工作,可能跟集群red有关系。

1.根本原因

节点磁盘不足,导致某些分片无法分配,一般情况下都有集群会有水位设置,比如说可以设置50G或者到85%的时候就不往里写数据了,
但是之前一次出了故障导致必须放开这个限制,之后没加上。

可以用命令:

GET /_cluster/allocation/explain

查看详细原因。

2.解决方案

POST /_cluster/reroute?retry_failed=true

es的机制貌似是try了5次就停了,重启master或者node都无效,执行上面的命令可以再retry。

3.后记

es这个东西还是复杂,而且很重,没有专业团队维护后期数据量大了很难维护。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM