Elasticsearch 5/6 升級 7.x 注意事項及設定差異

2020-05-24 Elastic

Elasticsearch 在現在公司玩了一陣子,也升級過幾次大概有一些心得可以分享,這篇專注在 7.x 版本 (寫文章當下的版本是 7.7)

一開始先提 Elasticsearch 升級時必須注意的事項:

  • Release Notes:如果跳很多版本或者是懶得看,至少也得關注一下 Core、Deprecations 之類更新訊息。
  • 版本更新對應表:確認你現在的版本是否能一次升到最新,或者是必須階段性升級
    • 舉例:5.x -> 7.7 或是 5.x -> 6.x -> 7.7
  • Rolling-upgrade:這是 Elasticsearch 一貫的升級方式,一台一台更新是最安全的方式,千萬不要一次就把整個 Cluster 攏乎系 …
  • Reindex:最重要的一塊,Elasticsearch 升級前一定要看的 Reindex,最痛苦的不外乎 index 可能要重 Build index …
    • 以現在的 7.x 版本來講,如果有 5.x 版本的 index 最少要先升級到 6.x 版本的 index。

大前提說完之後,來聊一下 Elasticsearch 7.x 會遇到的幾個重大更新:

介面與功能大曜進

Elasticsearch 7.x 之後把整個使用者體驗的介面全換新了,還加上 Dark mode 簡述一個字「潮」,官方更稱 7.0 版本是歷經 10,000 個 PR 來了

支援多叢集查詢

單一叢集在這個時代已經不夠用了,多叢集整合的概念在許多 Framework 漸漸實現,像是 kubefed (Kubernetes federation v2) 這種大型服務

而 Elasticsearch 也跨出了這一步讓 Search across clusters 實現意味著不需要再把所有資料放在同一個叢集,整天擔心受怕這個 Cluster 會不會杯具,從更遠來看跨地域、跨平台,不同叢集實作不同的功能,讓整個 Elasticsearch 架構更加龐大,X-Pack 也趁機推出 CCR (cross-cluster replication) 來賣錢。

Multiple Cluster 的概念把重要核心拉到更高層級,進而延伸出 Remote Cluster 的方式 :

Discovery

Zen Discovery 切分 Dev/Production mode,參考 development vs. production mode 設定上有以下差異:

  • 單台 elasticsearch (Single-mode) 要指定 single-node
discovery.type: single-node
cluster.initial_master_nodes:
  - master-node-a
  - master-node-b
  - master-node-c

移除 mapping type 改用 Index per document type

remove-of-types 提到從 Elasticsearch 7.x 開始不再支援 mapping type 並且建議改用 Index per document type

每個 node 最多 1000 個 shards

原本只有在文件中建議一個 node 最多 1000 個以下的 shards,現在乾脆直接預設不能超過 1000 shards

但是官方提供的 cluster.max_shards_per_node 有一些問題,詳細可以參考「Elasticsearch 7.x node 開放 1000 個 shards 限制

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱