ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Elasticsearch节点下线(退役)and unassigned shards

2021-06-21 18:06:44  阅读:233  来源: 互联网

标签:副本 9200 shard shards unassigned Elasticsearch curl 退役 节点


一、节点退役

当集群中个别节点出现故障预警等情况,需要进行退役工作,即让所有位于该退役节点上的分片的数据分配到其他节点上后,再将此节点关闭并从集群中移除。
1、ES提供了让某个节点上所有数据都移走的功能如下:
  ElasticSearch集群就会自动把这个节点上的所有分片,都自动转移到其他节点上,等到转移完成,这个空节点就可以毫无影响的下线。

curl -XPUT 127.0.0.1:9200/_cluster/settings -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}'

2、当shard都迁移走后,就可以将此机器上的ES进程关闭
3、可以在管理页面上删除此节点的ES服务角色

二、在节点退役过程中遇到的坑

退役ElasticSearch server 节点时,在页面上进行删除该节点后,replia不为0的index恢复过来,但是导致副本为0的index未能进行shard的分配,导致集群始终是red状态。
方式一:跟客户确认该未成功分配分片的索引有没有用,没用就直接删除即可。
方式二:
1、查看ES集群的健康状况
curl -XGET http://localhost:9200/_cluster/health\?pretty
2、查找未分配的分配
curl -s "http://localhost:9200/_cat/shards" | grep UNASSIGNED

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
3、执行reroute(分多次,逐个修复 变更shard的值为UNASSIGNED查询结果中编号, 上一步查询结果是1 4)
将没有成功分配的shard,进行手动迁移到目标节点

curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"allocate" : {
"index" : "rs_wx_test",#unsigned 的索引
"shard" : 1,#出现unsigned的切片编号
"node" : "AfUyuXmGTESHXpwi4OExxx",#目标节点
"allow_primary" : true
}
}
] }'

方式三:增加节点数或者减少副本数:
这里选择减少副本数为为例:

curl -H "Content-Type: application/json" -XPUT 'localhost:9200/employee/_settings?pretty' -d '{
"number_of_replicas": 1 #以前副本数为2的时候出现了shards unsigned,现将副本数设置为1,恢复正常
}'

标签:副本,9200,shard,shards,unassigned,Elasticsearch,curl,退役,节点
来源: https://blog.51cto.com/u_15278282/2933712

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有