ES实战节点数据的清空
Posted 顧棟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES实战节点数据的清空相关的知识,希望对你有一定的参考价值。
节点数据清空处理
1、查询集群原来的配置
curl -X GET "http://ip:port/_cluster/settings?pretty"
出于某种原因,集群中原来就已经排除了某些数据节点,这些配置在未确定的情况下保持不动,数据还是排除。
"persistent":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip"
,
"transient":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip"
2、清空节点数据
清空数据节点的数据,ip:集群任意节点IP,port:http服务端口号,ip1,ip2:需要排除数据的IP,将原来配置需要排除数据的节点IP加上本次排除数据的节点IP,以逗号分隔。
curl -X PUT "http://ip:port/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
"persistent" :
"cluster.routing.allocation.exclude._ip" : "ip1,ip2"
,
"transient" :
"cluster.routing.allocation.exclude._ip" : "ip1,ip2"
'
命令结果:
"acknowledged": true,
"persistent":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip1,ip2"
,
"transient":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip1,ip2"
如果集群状态不好,命令可能超时。通过以下命令查询配置是否成功
curl -X GET "http://ip:port/_cluster/settings?pretty"
看结果中是否有配置的内容。
"persistent":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip1,ip2"
,
"transient":
"cluster":
"routing":
"allocation":
"exclude":
"_ip": "ip1,ip2"
3、检查是否排空数据
检查数据节点上是否存在数据,结果中的IP列没有需要下线的IP,说明数据已经排尽,满足机器下线条件了。有的集群分片可能很多,可以将结果输出到文件查询。
curl -X GET "http://ip:port/_cat/shards?v&pretty&s=ip:desc"
index shard prirep state docs store ip node
config_s-20211108 1 r STARTED 0 130b 192.168.1.1 es03-prd
config_s-20211108 2 r STARTED 0 130b 192.168.1.1 es03-prd
config_s-20211108 0 p STARTED 0 130b 192.168.1.1 es03-prd
.monitoring-data-2 0 r STARTED 5 15.7kb 192.168.1.1 es03-prd
config_s-20211107 1 r STARTED 0 130b 192.168.1.1 es03-prd
config_s-20211107 2 r STARTED 0 130b 192.168.1.1 es03-prd
config_s-20211107 0 p STARTED 0 130b 192.168.1.1 es03-prd
4、数据清空失败场景
1、集群中配置了require
GET /_cluster/settings
清空或者将需要删除节点去掉
PUT /_cluster/settings
"persistent" :
"cluster.routing.allocation.require._ip" : null
,
"transient" :
"cluster.routing.allocation.require._ip" : null
2、索引中配置了require
GET myindex/_settings
清空或者将需要删除节点去掉
PUT myindex/_settings
"index.routing.allocation.require._ip": null
5、加快分片迁移
可以通过修改索引恢复的速度,和集群可以恢复的节点数进行控制。同时在均衡的数量主节点初始化的数量也会有影响。需要结合集群压力配置。不可以过大。
PUT _cluster/settings
"persistent" :
"cluster.routing.allocation.node_concurrent_recoveries" : 20,
"cluster.routing.allocation.node_initial_primaries_recoveries": 20,
"cluster.routing.allocation.cluster_concurrent_rebalance": 20,
"indices.recovery.max_bytes_per_sec":"80mb"
,
"transient" :
"cluster.routing.allocation.node_concurrent_recoveries" : 20,
"cluster.routing.allocation.node_initial_primaries_recoveries": 20,
"cluster.routing.allocation.cluster_concurrent_rebalance": 20,
"indices.recovery.max_bytes_per_sec":"80mb"
indices.recovery.max_bytes_per_sec
默认40mb
。
以上是关于ES实战节点数据的清空的主要内容,如果未能解决你的问题,请参考以下文章