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