Bootstrap

ES重启后造成部分数据分片丢失

现场现象:由于ES的索引较大,在重启后节点间将进行分片的自动分配,这个过程很缓慢,在重新分配期间关闭节点,造成数据的丢失

解决思路:

elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级。但是业务不能停,如果直接kill掉节点,可能导致数据丢失。而且集群会认为该节点挂掉了,就开始转移数据,当重启之后,它又会恢复数据,如果你当前的数据量已经很大了,这是很耗费机器和网络资源的。

重启集群节点的方法

1.先暂停集群的shard自动均衡

curl -XPUT http://127.0.0.1:9200/_cluster/settings -d'{"transient" : {"cluster.routing.allocation.enable" : "none"}}'
 

2.shutdown要升级的节点 

curl -XPOST http://127.0.0.1:9200/_cluster/nodes/_local/_shutdown

3.升级重启该节点,并确认该节点重新加入到了集群中

4.重复2-3步,升级重启其它要升级的节点

5.重启启动集群的shard均衡

curl -XPUT http://127.0.0.1:9200/_cluster/settings -d'{"transient" : {"cluster.routing.allocation.enable" : "all"}}'

;