鍍金池/ 教程/ Java/ Elasticsearch版本之間遷移
Elasticsearch搜索API
Elasticsearch教程
Elasticsearch填充
Elasticsearch測(cè)試
Elasticsearch分析
Elasticsearch映射
Elasticsearch入門教程
Elasticsearch版本之間遷移
Elasticsearch集群API
Elasticsearch模塊
Elasticsearch環(huán)境安裝配置
Elasticsearch聚合
Elasticsearch查詢DSL
Elasticsearch索引API
Elasticsearch API約定
Elasticsearch文檔API

Elasticsearch版本之間遷移

在任何系統(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的步驟 -

  • http://www.elastic.co/ 閱讀了解如何更改文檔。
  • 在非生產(chǎn)環(huán)境(如UAT,E2E,SIT或DEV環(huán)境)中測(cè)試升級(jí)版本。
  • 如果沒有數(shù)據(jù)備份,則無(wú)法回滾到上一個(gè)Elasticsearch版本。 建議在升級(jí)到更高版本之前進(jìn)行數(shù)據(jù)備份。
  • 可以使用完全群集重新啟動(dòng)或滾動(dòng)升級(jí)進(jìn)行升級(jí)。 滾動(dòng)升級(jí)適用于新版本(適用于2.x和更高版本)。當(dāng)您使用滾動(dòng)升級(jí)方法進(jìn)行遷移時(shí),不要中斷服務(wù)。
舊版 新版 升級(jí)方法
0.90.x 2.x 完全群集重新啟動(dòng)
1.x 2.x 完全群集重新啟動(dòng)
2.x 2.y 滾動(dòng)升級(jí)(y> x)
  • 在遷移前進(jìn)行數(shù)據(jù)備份,并按照說明執(zhí)行備份過程。 快照和恢復(fù)模塊可用于進(jìn)行備份。此模塊可用于創(chuàng)建索引或完整集群的快照,并可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)庫(kù)中。

快照和還原模塊

在開始備份過程之前,需要在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
   }
}

完全群集重新啟動(dòng)

此升級(jí)過程包括以下步驟 -

第1步 - 禁用碎片分配程序,并關(guān)閉節(jié)點(diǎn)。

PUT http://localhost:9200/_cluster/settings
{
   "persistent": {
      "cluster.routing.allocation.enable": "none"
   }
}

在升級(jí)0.90.x1.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í)行以下操作 -

  • 在Debian或Red Hat節(jié)點(diǎn)中 - 可以使用rmp或dpkg通過安裝新軟件包來(lái)升級(jí)節(jié)點(diǎn)。 不要覆蓋配置文件。
  • 在Windows(zip文件)或UNIX(tar文件) - 提取新版本,而不覆蓋config目錄。 您可以從舊安裝復(fù)制文件或可以更改path.confpath.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)升級(jí)

它與完全群集重新啟動(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