Elasticsearch unassigned shards的解决之道

出现这种提示,说明你的集群状态是亚健康的,status是yellow,至少有一个副本分片没有成功创建,集群是能正常工作的,只是有丢失数据的风险。

一,问题定位

解决思路,首先查清楚问题所在,es提供一个api查看分片的信息。

http://localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason

结果如下图,最后一行是分片创建失败的原因,图中的INDEX_CREATED标识在创建索引时副本就未创建成功。
在这里插入图片描述
根据es官网,各种副本分片创建失败原因如下:

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 :确定更好的副本位置被标定使用,导致现有的副本分配被取消,出现未分配。

下面针对每一种原因提出不同的解决方案。

二,INDEX_CREATED

1,根本原因

出现这个说明在创建索引时分片就无法正常创建,大概率原因是你的副本分片数设置有问题。

es规定副本分片和主分片不能在同一个节点,同一个节点不能存在两个相同的副本分片,所以副本分片书不能比节点数多。

举个例子,如果集群有3个节点,副本分片不能大于2。如果大于2,必然出现主分片和副本分片在同一个节点的情况出现。

2,解决之道

修改副本分片数小于结点数。

elasticsearch 出现yellow 分片有unassigned现象原因

如何处理elastic search中的unassigned shards?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值