Elasticsearch yellow 意味着主分片可用,副本不可用


 

在通過 /_cluster/state 命令查看es 狀態的時候,發現es 處於一個yellow的狀態, 這個很奇怪,按照官方的解釋,就是所有主分片都是處於可用狀態,但是有復制分片不可用。為什么有復制分片不可用呢?

通過/_cat/shards 查看,發現有從分配處於一個未分配的狀態,該命令該出的數據奇怪的地方是,我的集群明明有三台機器,但是shareds里面只給出了兩台。

data 2 r STARTED 449516 1.6gb 100.73.22.5 22-5
data 2 p STARTED 449516 1.6gb 100.73.22.6 22-6
data 2 r UNASSIGNED

然后通過查閱官方手冊,查詢UNASSIGNED 的原因,然后發現很多種可能性的,但是官方的api 的case里面,shards 是直接給出了原因的,但是我的es卻沒有給出原因。怎么辦呢?在api文檔里面找答案,發現了/_cluster/reroute 的命令,一看就知道是救星,既然狀態是UNASSIGNED, 我手動指定 該切片到特定的節點,不就可以了么。

執行命令

curl -XPOST ‘100.73.22.5:6200/_cluster/reroute’ -d ‘{
“commands” : [{
"move" : {
"index" : "data",
"shard" : 0,
"from_node" : "22-6" ,
"to_node": "22-5"
}
}]
}’

然后ES報錯,從報錯信息里面得到一個信息,就是說磁盤空間已經超過了85%,無法執行,然后果然一看,磁盤已經滿了。原來之所以只有兩個節點,是因為第三個節點不能用導致的。

so,剩下的就很簡單,down掉es 進程,然后把 elasticsearch.yml 中的兩項path信息,更新到一個更大的磁盤,然后重啟服務,ok了。

/_cat/shards發現 切片的狀態,已經變成INITIALIZING了。正在同步數據。df -h 發現大磁盤的使用量 刷刷的上升。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM