歡迎關注筆者的公衆號: 小哈學Java, 每日推送 Java 領域乾貨文章,關注即免費無套路附送 100G 海量學習、面試資源喲!!java
我的網站: https://www.exception.site/essay/elasticsearch-single-cluster-plugin-installnode
Elasticsearch 是開源的分佈式全文搜索引擎,它底層基於 Apache Lucene,具有高伸縮、高可靠、易管理等特色。提供搜索、分析、數據存儲三大功能。特色包括分佈式、RESTFul 接口、索引自動分片、副本機制、多數據源以及搜索負載等等。面試
根據 DB-Engines 的排名顯示,Elasticsearch 是最受歡迎的企業搜索引擎,其次是Apache Solr,它也是基於Lucene。docker
今天,小哈就手摸手帶着你們學會 Elasticsearch 單機、集羣、插件安裝步驟,附有豐富的圖文哦~shell
在安裝 Elasticsearch 以前,您需安裝並配置好 JDK, 設置好環境變量 $JAVA_HOME
。安全
衆所周知,Elasticsearch 版本不少,不一樣的版本對 Java 的依賴也有所差異:微信
訪問 Elasticsearch 官網 https://www.elastic.co/cn/downloads/elasticsearch 下載安裝包:curl
筆者這裏下載的是 MAC 系統 Elasticsearch V7.1.0 版本做爲演示。jvm
下載成功後,解壓到指定目錄:elasticsearch
tar -zxvf elasticsearch-7.1.0-darwin-x86_64.tar.gz
進入解壓後的目錄,結構以下:
這裏大概解答下各個目錄、配置文件的做用:
目錄 | 配置文件 | 描述 |
---|---|---|
bin | 放置腳本文件,如啓動腳本 elasticsearch, 插件安裝腳本等。 | |
config | elasticserch.yml | elasticsearch 配置文件,如集羣配置、jvm 配置等。 |
jdk | java 運行環境 | |
data | path.data | 數據持久化文件 |
lib | 依賴的相關類庫 | |
logs | path.log | 日誌文件 |
modules | 包含的全部 ES 模塊 | |
plugins | 包含的全部已安裝的插件 |
注意點:
- 有些童鞋的機器內存可能不夠,就須要修改 JVM 參數,配置文件路徑爲
config/jvm.options
,ES V7.1 版本默認爲1g
, 老版本爲2g
, 你能夠自行修改。Xmx
和Xms
數值請設置相同;Xmx
不要超過機器內存的50%
;- 內存總量不要超過 30GB, 參見官方文檔 https://www.elastic.co/cn/blog/a-heap-of-trouble;
執行啓動命令:
bin/elasticsearch
看到啓動日誌中有 started
關鍵字,就表示啓動成功了。
另外,咱們還能夠經過訪問 Elasticsearch 9200
端口來實際驗證一下:
curl localhost:9200
返回了 Elasticsearch 相關元數據,如版本信息 7.1.0
,就明確表示大工告成,能夠好好地玩耍了。
以前,小哈還原創過一篇《Docker 快速安裝&搭建 Elasticsearch 環境》,其中包含如何經過 Docker 來安裝 Elasticsearch, 有興趣的小夥伴能夠看下。
經過以下命令,找出正在運行的 ES 進程 PID:
ps -ef | grep elasticsearch
執行 kill 命令,便可關閉 Elasticsearch 進程:
kill pid
在 Elasticsearch 解壓包的根目錄下,經過以下命令,能夠查看當前已安裝的插件:
bin/elasticsearch-plugin list
這裏因爲是第一次安裝 Elasticsearch,尚未安裝任何插件,因此顯示的列表爲空。
安裝插件命令格式以下:
bin/elasticsearch-plugin install {插件名稱}
咱們選擇國際化分詞插件 analysis-icu
, 嘗試去安裝它:
bin/elasticsearch-plugin install analysis-icu
能夠看到插件安裝成功了。
細心的小夥伴可能看到,控制檯日誌中有警告⚠️信息,這個會有影響麼?
答案是: 不影響!
小哈特地去 Elasticsearch GitHub issues 看了一下:
接下來,再經過 bin/elasticsearch-plugin list
命令就能夠看到 analysis-icu
插件已經顯示在列表中了:
除了上面這種方式外,還能夠經過以下接口來查看:
GET /_cat/plugins
如圖所示:
拓展:Elasticsearch 提供插件的機制,容許開發者對系統進行拓展。好比,經過插件的機制,來增長安全權限的管控,可參考開源的 ES 插件 Search Guard.
咱們將演示,如何在本機上搭建一個多節點的 Elasticsearch 集羣。
這個集羣中會有 4 個節點,分別是 node0
、node1
、node2
、node3
。
啓動命令以下:
bin/elasticsearch -E node.name=node0 -E cluster.name=xiaoha-cluster -E path.data=node0_data -d bin/elasticsearch -E node.name=node1 -E cluster.name=xiaoha-cluster -E path.data=node1_data -d bin/elasticsearch -E node.name=node2 -E cluster.name=xiaoha-cluster -E path.data=node2_data -d bin/elasticsearch -E node.name=node3 -E cluster.name=xiaoha-cluster -E path.data=node3_data -d
小夥伴們可能會說:啓動命令後面的參數都是啥意思?
看圖:
啓動成功後,咱們能夠經過 /_cat/nodes API 來查看集羣節點信息:
GET /_cat/nodes
注意: 執行命令後,不要當即驗證節點是否啓動成功,由於啓動成功須要花費一些時長,稍等片刻,就能看到被成功啓動的節點了。
接下來,經過 CURL 命令來查看一下節點信息:
curl localhost:9200/_cat/nodes
能夠看到,一共 4 個節點,是 OK 的,另外,咱們也能夠經過 HEAD 插件來查看:
至此,一個 4 節點的 Elasticsearch 集羣的本地環境搭建完畢。
本文中,小哈手摸手帶着你們學會了 Elasticsearch 單機、集羣、插件的安裝,但願小夥伴們看完後,有所收穫,下期見哦~
關注筆者的微信公衆號: 小哈學Java, 每日第一時間推送乾貨文章, 另外, 筆者我的吐血整理了 100G 的學習資料, 關注回覆「666」便可免費無套路領取喲~