【弄nèng - Elasticsearch】运维篇 —— ES分片unassigned解决方案(ALLOCATION_FAILED,REPLICA_ADDED等

文章目录

1. 情况

ES分片有一些未分配成功,集群状态处于黄色
我们可以通过以下api查看分片情况

GET _cat/shards?h=index,shard,prirep,state,unassigned.reason

通过返回值可以看到分片未分配的原因,一般有以下几个:

  1. INDEX_CREATED:由于创建索引的API导致未分配。
  2. CLUSTER_RECOVERED :由于完全集群恢复导致未分配。
  3. INDEX_REOPENED :由于打开open或关闭close一个索引导致未分配。
  4. DANGLING_INDEX_IMPORTED :由于导入dangling索引的结果导致未分配。
  5. NEW_INDEX_RESTORED :由于恢复到新索引导致未分配。
  6. EXISTING_INDEX_RESTORED :由于恢复到已关闭的索引导致未分配。
  7. REPLICA_ADDED:由于显式添加副本分片导致未分配。
  8. ALLOCATION_FAILED :由于分片分配失败导致未分配。
  9. NODE_LEFT :由于承载该分片的节点离开集群导致未分配。
  10. REINITIALIZED :由于当分片从开始移动到初始化时导致未分配(例如,使用影子shadow副本分片)。
  11. REROUTE_CANCELLED :作为显式取消重新路由命令的结果取消分配。
  12. REALLOCATED_REPLICA :确定更好的副本位置被标定使用,导致现有的副本分配被取消,出现未分配。

2. 继续深究

我的错误是NODE_LEFT和REPLICA_ADDED,NODE_LEFT很明显是节点挂掉了,但是REPLICA_ADDED等其他原因具体是什么呢,这就要借助官方API一探究竟。
Cluster allocation explain API

GET /_cluster/allocation/explain?pretty

这个API会返回未分配索引每个节点的详情,其中就有未分配的原因
在这里插入图片描述
explanation

the shard cannot be allocated on host address 21.21.21.21,where it already exists on node[--gtasdasd7tRY#sd], set cluster setting [cluster.routing.allocation.same_shard.host] to false to allow multiple  nodes on the same host to hold the same shard copies

翻译

不能在主机地址21.21.21.21上分配分片,分片已经存在于节点[——gtasdasd7tRY#sd]上,设置集群设置[cluster.routing.allocation.same_shard]。允许同一主机上的多个节点持有相同的碎片副本

这就很明显告诉你怎么解决这个错误了。

  • cluster.routing.allocation.same_shard.host: 是否启用对同一分片在同一个主机上出现多个分配实例的检测。默认false。这个选项只有在同一个node上启动多个es实例的情况下才有意义。

3. 解决此问题用到的知识

干货 | Elasticsearch 集群健康值红色终极解决方案

elasticsearch【cat API,系统数据】指令汇总

elasticsearch之cluster模块

Elasticsearch 2.2.0 集群配置详解

elasticsearch常用接口和集群动态设置

Elasticsearch集群优化实战


项目推荐

IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本CSDN elasticsearch系列中。

开源项目,持续更新中,喜欢请 Star~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值