ES安全重啟
elasticsearch集群,有時候可能需要修改配置,增刪硬件等操作,需要對節點進行升級等操作。但是服務不能停,如果直接kill掉節點,可能導致數據丟失。而且集群會認為該節點掛掉了,就開始轉移數據(這個過程相當好資源,經歷過兩次,直接kill掉某一節點后集群開始relocation,網卡被打滿,正常請求很多超時),當重啟之后,它又會恢復數據,如果你當前的數據量已經很大了,這是很耗費機器和網絡資源的。
本文轉載官方提供的安全重啟集群節點的方法:
第一步:先暫停集群的shard自動均衡
curl -XPUT http://192.168.1.2:9200/_cluster/settings -d'
{
"transient" : {
"cluster.routing.allocation.enable" : "none"
}
}'
第二步:kill要升級的節點
ps aux |grep elasticsearch |awk '{print $2}' |xargs kill
第三步:恢復集群的shard自動均衡
curl -XPUT http://192.168.1.2/_cluster/settings -d'
{
"transient" : {
"cluster.routing.allocation.enable" : "all"
}
}'
原文http://mooncake.im/article/elasticsearch-node-safe-restart/