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 发现大磁盘的使用量 刷刷的上升。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2016-08-31 C++构造函数和析构函数调用虚函数时都不会使用动态联编
2016-08-31 C++调用父类的构造函数规则
2016-08-31 C++迟后联编和虚函数表