在任何系統(tǒng)或軟件中,當(dāng)我們升級(jí)到較新版本時(shí),需要按照幾個(gè)步驟來(lái)維護(hù)應(yīng)用程序設(shè)置,配置,數(shù)據(jù)和其他事情。 這些步驟是使應(yīng)用程序在新系統(tǒng)中保持穩(wěn)定或保持?jǐn)?shù)據(jù)的完整性(防止數(shù)據(jù)損壞)所必需的。
以下是升級(jí)Elasticsearch的步驟 -
舊版 | 新版 | 升級(jí)方法 |
---|---|---|
0.90.x | 2.x | 完全群集重新啟動(dòng) |
1.x | 2.x | 完全群集重新啟動(dòng) |
2.x | 2.y | 滾動(dòng)升級(jí)(y> x) |
在開始備份過程之前,需要在Elasticsearch中注冊(cè)快照存儲(chǔ)庫(kù)。
PUT /_snapshot/backup1
{
"type": "fs", "settings": {
... repository settings ...
}
}
注意 - 上面的文本是對(duì)
http://localhost:9200/_snapshot/backup1
的HTTP PUT請(qǐng)求(可以是遠(yuǎn)程服務(wù)器的IP地址,而不是localhost
)。其余的文本是請(qǐng)求正文??梢允褂胒iddler2和Windows中的其他網(wǎng)絡(luò)工具。
我們使用共享文件系統(tǒng)(類型:fs)進(jìn)行備份; 它需要在每個(gè)主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)中注冊(cè)。只需要添加具有備份存儲(chǔ)庫(kù)路徑的path.repo
變量作為值。
添加存儲(chǔ)庫(kù)路徑后,需要重新啟動(dòng)節(jié)點(diǎn),然后可以通過執(zhí)行以下命令來(lái)執(zhí)行注冊(cè) -
PUT http://localhost:9200/_snapshot/backup1
{
"type": "fs", "settings": {
"location": "/mount/backups/backup1", "compress": true
}
}
此升級(jí)過程包括以下步驟 -
第1步 - 禁用碎片分配程序,并關(guān)閉節(jié)點(diǎn)。
PUT http://localhost:9200/_cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
在升級(jí)0.90.x
到1.x
的情況下使用以下請(qǐng)求 -
PUT http://localhost:9200/_cluster/settings
{
"persistent": {
"cluster.routing.allocation.disable_allocation": false,
"cluster.routing.allocation.enable": "none"
}
}
第2步 - 對(duì)Elasticsearch進(jìn)行同步刷新 -
POST http://localhost:9200/_flush/synced
第3步 - 在所有節(jié)點(diǎn)上,終止所有 elastic
服務(wù)。
第4步 - 在每個(gè)節(jié)點(diǎn)上執(zhí)行以下操作 -
config
目錄。 您可以從舊安裝復(fù)制文件或可以更改path.conf
或path.data
。第5步 - 從群集中的主節(jié)點(diǎn)(node.master
設(shè)置為true
,node.data
設(shè)置為false
的節(jié)點(diǎn))開始重新啟動(dòng)節(jié)點(diǎn)。等待一段時(shí)間以建立群集??梢酝ㄟ^監(jiān)視日志或使用以下請(qǐng)求進(jìn)行檢查 -
GET _cat/health or http://localhost:9200/_cat/health
GET _cat/nodes or http://localhost:9200/_cat/health
第6步 - 使用GET _cat/health
請(qǐng)求監(jiān)視集群的形成進(jìn)度,并等待黃色響應(yīng),響應(yīng)將是這樣 -
1451295971 17:46:11 elasticsearch yellow 1 1 5 5 0 0 5 0 - 50.0%
第6步 - 啟用分片分配過程,這是在第1步中禁用的,使用以下請(qǐng)求 -
PUT http://localhost:9200/_cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}
在將0.90.x
升級(jí)到1.x
的情況下,請(qǐng)使用以下請(qǐng)求 -
PUT http://localhost:9200/_cluster/settings
{
"persistent": {
"cluster.routing.allocation.disable_allocation": true,
"cluster.routing.allocation.enable": "all"
}
}
它與完全群集重新啟動(dòng)相同,但第3步除外。在此,停止一個(gè)節(jié)點(diǎn)并進(jìn)行升級(jí)。升級(jí)后,重新啟動(dòng)節(jié)點(diǎn)并對(duì)所有節(jié)點(diǎn)重復(fù)這些步驟。 啟用分片分配過程后,可以通過以下請(qǐng)求監(jiān)視:
GET http://localhost:9200/_cat/recovery