日常應用中我們會經常對es 集群做一些參數調整或者升級版本,但是每次關閉節點再打開 其中的數據同步的痛苦估計有很多人領悟過(有可能出現IO或者網絡擁堵導致惡性循環)官網有套方案可以嘗試一下:
1.關掉集群 分片 自動分配設置
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}
2.停掉不必要的索引維護 讓碎片恢復的更快
POST /_flush/synced
3.停掉需要升級的節點,配置或者升級,推薦覆蓋 之前的elasticsearch.yml 配置文件,記得copy data 文件夾 。
4.啟動升級好的節點 查看狀態
GET _cat/nodes
5.重新開啟集群 分片 自動分配
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}
6.等待節點恢復
GET _cat/health
如果沒有第二部操作,那估計得需要比較多的時間恢復,用下面api查詢恢復狀態,當然我推薦插件 kopf
GET _cat/recovery
7. 重復上面步驟來升級所有需要升級的節點
PS : 千萬注意 數據只能從 低版本到高版本,不能逆向~ 切記
