Elasticsearch 7.x 最詳細安裝及配置


Elasticsearch 7.x 最詳細安裝及配置

一、Elasticsearch 7.x

小馬哥說過,學習技術棧得看版本,那么 Elasticsearch 7.x 有什么好的特性呢?

ES 7.0 是 2019 年 4 月份發布的,底層是 Lucene 8.0。其他還有需要了解的是:

  • 廢除單個索引下多 Type 的支持
  • ES Security 免費使用
  • ECK - ES Operator on K8s
  • 新功能:New Cluster coordination
  • 新功能:完整的 High Level REST Client
  • 新功能:Script Score Query
  • 性能:默認 Primary Shard 數從 5 到 1 ,避免 Over Sharding;性能優化更快的 Top K

二、Elasticsearch 7.x 安裝步驟

2.1 下載 Elasticsearch 7.2.1

下載地址:https://www.elastic.co/cn/downloads/elasticsearch

file

如圖,下載對應需要的 ES 。我這邊是 MacOS ,所以直接下載了 MacOS 的本。另外 ES 支持 Docker 方式啟動。另外,ES 7.x 不需要本地 JDK 環境支持:

  • ES 5,安裝需要 JDK 8 以上
  • ES 6.5,安裝需要 JDK 11 以上
  • ES 7.2.1,內置了 JDK 12

下載完后,ES 文件目錄結構如下圖所示:

file

Elasticsearch 7.2.1 目錄結構如下:

  • bin :腳本文件,包括 ES 啟動 & 安裝插件等等
  • config : elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等
  • JDK : 內置的 JDK,JAVA_VERSION="12.0.1"
  • lib : 類庫
  • logs : 日志文件
  • modules : ES 所有模塊,包括 X-pack 等
  • plugins : ES 已經安裝的插件。默認沒有插件
  • data : ES 啟動的時候,會有該目錄,用來存儲文檔數據。該目錄可以設置

具體看看關鍵的 jvm.options JVM 配置文件,默認配置如下:

-Xms1g
-Xmx1g

ES 默認安裝后設置的堆內存是 1 GB,對於任何業務來說這個設置肯定是少了。那設置多少?

推薦:如果足夠的內存,也盡量不要 超過 32 GB。即每個節點內存分配不超過 32 GB。 因為它浪費了內存,降低了 CPU 的性能,還要讓 GC 應對大內存。如果你想保證其安全可靠,設置堆內存為 31 GB 是一個安全的選擇。

上述推薦,理由來自《堆內存:大小和交換編輯》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html

2.2 啟動 Elasticsearch 7.2.1

啟動方式很簡單,在 ES 根目錄下面,執行啟動腳本文件:

cd elasticsearch-7.2.1
bin/elasticsearch

運行完后,會出現下面的日志:

future versions of Elasticsearch will require Java 11; your Java version from [/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/jre] does not meet this requirement

... 省略

[2019-08-16T16:29:53,069][INFO ][o.e.n.Node               ] [BYSocketdeMacBook-Pro-2.local] started
[2019-08-16T16:29:53,478][INFO ][o.e.l.LicenseService     ] [BYSocketdeMacBook-Pro-2.local] license [ef60f54d-4964-4cb6-98ac-aafdc0f2a4c0] mode [basic] - valid
[2019-08-16T16:29:53,491][INFO ][o.e.g.GatewayService     ] [BYSocketdeMacBook-Pro-2.local] recovered [0] indices into cluster_state
[2019-08-16T16:30:23,057][INFO ][o.e.c.r.a.DiskThresholdMonitor] [BYSocketdeMacBook-Pro-2.local] low disk watermark [85%] exceeded on [DRs4DZO0SzCaYz3n3vA3Fg][BYSocketdeMacBook-Pro-2.local][/javaee/es/elasticsearch-7.2.1/data/nodes/0] free: 49.2gb[10.6%], replicas will not be assigned to this node

日志中有兩個信息需要注意:

  • 本機環境是 JDK 8 ,它會提醒后面版本需要 JDK 11 支持。但它是向下兼容的
  • 表示本機 ES 啟動成功 [BYSocketdeMacBook-Pro-2.local] started

2.3 驗證是否啟動成功

file

打開瀏覽器,輸入 http://localhost:9200/ 地址,然后可以得到下面的信息:

{
    "name": "BYSocketdeMacBook-Pro-2.local",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "tc9h17oqSHKvGJb3qK2tPg",
    "version": {
        "number": "7.2.1",
        "build_flavor": "default",
        "build_type": "tar",
        "build_hash": "fe6cb20",
        "build_date": "2019-07-24T17:58:29.979462Z",
        "build_snapshot": false,
        "lucene_version": "8.0.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}

重點幾個關注下即可:

  • name : 默認啟動的時候指定了 ES 實例名稱,name 為 BYSocketdeMacBook-Pro-2.local
  • cluster_name : 默認名為 elasticsearch
  • version :版本信息

同樣通過 http://localhost:9200/_cat/nodes?v 地址,可以看到當前節點信息,如下:

127.0.0.1 30 100 22 2.87   mdi * BYSocketdeMacBook-Pro-2.local

2.4 單機集群多個 ES 實例安裝

單機多個 ES 實例,形成一個 ES 單機偽集群,啟動腳本如下:

bin/elasticsearch -E node.name=node01 -E cluster.name=bysocket_es_cluster -E path.data=node01_data -d

bin/elasticsearch -E node.name=node02 -E cluster.name=bysocket_es_cluster -E path.data=node02_data -d

bin/elasticsearch -E node.name=node03 -E cluster.name=bysocket_es_cluster -E path.data=node03_data -d

bin/elasticsearch -E node.name=node04 -E cluster.name=bysocket_es_cluster -E path.data=node04_data -d

命令簡單解釋如下:

  • node.name : ES 節點名稱,即實例名
  • cluster.name : ES 集群名稱
  • path.data : 指定了存儲文檔數據目錄

執行完腳本后,需要等一會 ES 啟動,也可以查看 logs 看看執行情況。

file

打開瀏覽器,輸入 http://localhost:9200/_cat/nodes?v 地址,可以看到啟動情況:node01 為當前 master 節點

如何關閉集群中的 ES 實例,可以使用簡單的命令實現:

ps | grep elasticsearch
kill -9 pid

三、Elasticsearch 7.x 插件概述

插件是用來增強 Elasticsearch 功能的方法,分為 核心插件(官方) & 社區插件。

安裝 analysis-icu ICU 分析插件,命令如下:

sudo bin/elasticsearch-plugin install analysis-icu

查看已安裝的插件,命令如下:

bin/elasticsearch-plugin list 

刪除已安裝的插件,命令如下:

sudo bin/elasticsearch-plugin remove analysis-icu

四、小結

本文介紹了兩種安裝以及插件安裝,因為方便學習集群相關的知識點。另外注意 JVM 配置相關的優化即可。后續繼續 Elasticsearch 7.x 操作學習 ~

(完)原創不易,幫轉 ~

資料:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM