原創 | 手摸手帶您學會 Elasticsearch 單機、叢集、外掛安裝(圖文教程)
歡迎關注筆者的公眾號: 小哈學Java, 每日推送 Java 領域乾貨文章,關注即免費無套路附送 100G 海量學習、面試資源喲!!
個人網站: https://www.exception.site/essay/elasticsearch-single-cluster-plugin-install
目錄
- 一、什麼是 Elasticsearch
- 二、Elasticsearch 下載&安裝
- 三、Elasticsearch 安裝&檢視外掛
- 四、Elasticsearch 本地叢集搭建
一、什麼是 Elasticsearch
Elasticsearch 是開源的分散式全文搜尋引擎,它底層基於 Apache Lucene,具備高伸縮、高可靠、易管理等特點。提供搜尋、分析、資料儲存三大功能。特點包括分散式、RESTFul 介面、索引自動分片、副本機制、多資料來源以及搜尋負載等等。
根據 DB-Engines 的排名顯示,Elasticsearch 是最受歡迎的企業搜尋引擎,其次是Apache Solr,它也是基於Lucene。
今天,小哈就手摸手帶著大家學會 Elasticsearch 單機、叢集、外掛安裝步驟,附有豐富的圖文哦~
二、Elasticsearch 下載&安裝
2.1 安裝 Java
在安裝 Elasticsearch 之前,您需安裝並配置好 JDK, 設定好環境變數 $JAVA_HOME
。
眾所周知,Elasticsearch 版本很多,不同的版本對 Java 的依賴也有所差別:
- Elasticsearch 5 需要 Java 8 以上版本;
- Elasticsearch 6.5 開始支援 Java 11;
- Elasticsearch 7.0 開始,內建了 Java 環境,所以說,安裝 7.0+ 版本會方便很多。
2.2 下載 Elasticsearch
訪問 Elasticsearch 官網 https://www.elastic.co/cn/downloads/elasticsearch 下載安裝包:
筆者這裡下載的是 MAC 系統 Elasticsearch V7.1.0 版本作為演示。
2.3 解壓
下載成功後,解壓到指定目錄:
tar -zxvf elasticsearch-7.1.0-darwin-x86_64.tar.gz
進入解壓後的目錄,結構如下:
2.4 Elasticsearch 目錄、配置檔案說明、注意點
這裡大概解答下各個目錄、配置檔案的作用:
目錄 | 配置檔案 | 描述 |
---|---|---|
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;
2.5 執行 Elasticsearch
執行啟動命令:
bin/elasticsearch
看到啟動日誌中有 started
關鍵字,就表示啟動成功了。
另外,我們還可以通過訪問 Elasticsearch 9200
埠來實際驗證一下:
curl localhost:9200
返回了 Elasticsearch 相關元資料,如版本資訊 7.1.0
,就明確表示大工告成,可以好好地玩耍了。
之前,小哈還原創過一篇《Docker 快速安裝&搭建 Elasticsearch 環境》,其中包含如何通過 Docker 來安裝 Elasticsearch, 有興趣的小夥伴可以看下。
2.6 Elasticsearch 關閉
通過如下命令,找出正在執行的 ES 程序 PID:
ps -ef | grep elasticsearch
執行 kill 命令,即可關閉 Elasticsearch 程序:
kill pid
三、Elasticsearch 安裝&檢視外掛
3.1 檢視已安裝的外掛
在 Elasticsearch 解壓包的根目錄下,通過如下命令,可以檢視當前已安裝的外掛:
bin/elasticsearch-plugin list
這裡由於是第一次安裝 Elasticsearch,還沒有安裝任何外掛,所以顯示的列表為空。
3.2 安裝外掛
安裝外掛命令格式如下:
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 本地叢集搭建
我們將演示,如何在本機上搭建一個多節點的 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
關注筆者的微信公眾號: 小哈學Java, 每日第一時間推送乾貨文章, 另外, 筆者個人吐血整理了 100G 的學習資料, 關注回覆「666」即可免費無套路領取喲~
相關推薦
原創 | 手摸手帶您學會 Elasticsearch 單機、叢集、外掛安裝(圖文教程)
歡迎關注筆者的公眾號: 小哈學Java, 每日推送 Java 領域乾貨文章,關注即免費無套路附送 100G 海量學習、面試資源喲!! 個人網站: https://www.exception.site/essay/elasticsearch-single-cluster-plugin-install 目
【轉】手摸手,帶你用vue擼後臺 系列二(登錄權限篇)
userinfo ogr abort 變化 再次 狀態碼 quest -o 監聽 前言 拖更有點嚴重,過了半個月才寫了第二篇教程。無奈自己是一個業務猿,每天被我司的產品虐的死去活來,之前又病了一下休息了幾天,大家見諒。 進入正題,做後臺項目區別於做其它的項目,權限驗證與
手摸手帶你部署git伺服器實現自動釋出程式碼
前段趁著活動買了個騰訊雲伺服器,一直沒抽時間去折騰,最近才開始部署了一個自己專屬的git倉庫,實現程式碼自動釋出部署功能。(我也想成為努力向上,積極進取的有志青年啊!)文章的內容基本都是參考自谷歌搜尋,然後按我的思路重新整理一遍,既是為了分享也是為了鞏固知識。 我也是第一次折騰伺服器,前期部署就
手摸手,帶你實現程式碼自動部署
為什麼? 為什麼要實現自動部署? 在2個月的時間裡,一直都在忙著整理部落格,每一個程式設計師都有一個部落格夢(當然也不排除有些是沒有的),我先後使用過各種部落格系統: vuepress react-static jekyll hexo ... 這些都因為前前後後的原因,
手摸手帶你玩轉Xcode Extensions
題圖:from imgur 事情是這樣的前段時間看到,E神寫了個新玩具叫Code Friend很酷炫,私下裡給E神說拿來推廣讓iOSTips的讀者體驗一番,E神說目前功能還不完善,等再牛逼一點再拿來分享,然後就有了接下來的分享。 有沒有這樣的體驗,我們經常要開啟終端,跳轉到當前工程目錄,
手摸手,帶你用vue擼後臺 系列二(登入許可權篇)
前言 拖更有點嚴重,過了半個月才寫了第二篇教程。無奈自己是一個業務猿,每天被我司的產品虐的死去活來,之前又病了一下休息了幾天,大家見諒。 進入正題,做後臺專案區別於做其它的專案,許可權驗證與安全性是非常重要的,可以說是一個後臺專案一開始就必須考慮和搭建的基礎核心功能
手摸手,帶你用合理的姿勢使用 webpack 4(上)
(點選上方公眾號,可快速關注)作者:華爾街見聞技術團隊 - 花褲衩segmentfault.co
手摸手,帶你用vue實現後臺管理許可權系統及頂欄三級選單顯示
手摸手,帶你用vue實現後臺管理許可權系統及頂欄三級選單顯示 效果演示地址 專案demo展示 重要功能總結 許可權功能的實現 許可權路由思路: 根據使用者登入的roles資訊與路由中配置的roles資訊進行比較過濾,生成可以訪問的路由表,並通過router.addRoutes(store.gett
圖解AQS的設計與實現,手摸手帶你實現一把互斥鎖!
AQS是併發程式設計中非常重要的概念,它是juc包下的許多併發工具類,如CountdownLatch,CyclicBarrier,Semaphore 和鎖, 如ReentrantLock, ReaderWriterLock的實現基礎,提供了一個基於int狀態碼和佇列來實現的併發框架。本文將對AQS框架的幾個重
淺談Java中的Condition條件佇列,手摸手帶你實現一個阻塞佇列!
條件佇列是什麼?可能很多人和我一樣答不出來,不過今天終於搞清楚了! 什麼是條件佇列 條件佇列:當某個執行緒呼叫了wait方法,或者通過Condition物件呼叫了await相關方法,執行緒就會進入阻塞狀態,並加入到對應條件佇列中。 在等待喚醒機制相關文章中我們提到了條件佇列,即當物件獲取到同步鎖之後,如果呼叫
volatile 手摸手帶你解析
前言 volatile 是 Java 裡的一個重要的指令,它是由 Java 虛擬機器裡提供的一個輕量級的同步機制。一個共享變數宣告為 volatile 後,特別是在多執行緒操作時,正確使用 volatile 變數,就要掌握好其原理。 特性 volatile 具有可見性和有序性的特性,同時,對 volati
手摸手帶你理解Vue響應式原理
## 前言 響應式原理作為 `Vue` 的核心,使用資料劫持實現資料驅動檢視。在面試中是經常考查的知識點,也是面試加分項。 本文將會循序漸進的解析響應式原理的工作流程,主要以下面結構進行: 1. 分析主要成員,瞭解它們有助於理解流程 2. 將流程拆分,理解其中的作用 3. 結合以上的點,理解整體流程
手摸手帶你理解Vue的Computed原理
## 前言 `computed` 在 `Vue` 中是很常用的屬性配置,它能夠隨著依賴屬性的變化而變化,為我們帶來很大便利。那麼本文就來帶大家全面理解 `computed` 的內部原理以及工作流程。 在這之前,希望你能夠對響應式原理有一些理解,因為 `computed` 是基於響應式原理進行工作。如果你對
手摸手帶你理解Vue的Watch原理
## 前言 `watch` 是由使用者定義的資料監聽,當監聽的屬性發生改變就會觸發回撥,這項配置在業務中是很常用。在面試時,也是必問知識點,一般會用作和 `computed` 進行比較。 那麼本文就來帶大家從原始碼理解 `watch` 的工作流程,以及依賴收集和深度監聽的實現。在此之前,希望你能對響應式
YApi——手摸手,帶你在Win10環境下安裝YApi視覺化介面管理平臺
手摸手,帶你在Win10環境下安裝YApi視覺化介面管理平臺 YApi YApi 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,YApi 還為使用者提供了優秀的互
【手摸手,帶你搭建前後端分離商城系統】01 搭建基本程式碼框架、生成一個基本API
## 【手摸手,帶你搭建前後端分離商城系統】01 搭建基本程式碼框架、生成一個基本API 通過本教程的學習,將帶你從零搭建一個商城系統。 當然,這個商城涵蓋了很多流行的`知識點`和`技術核心` ### 我可以學習到什麼? - SpringBoot - 鑑權與認證、token、有關許可權的相關的內容
【手摸手,帶你搭建前後端分離商城系統】02 VUE-CLI 腳手架生成基本專案,axios配置請求、解決跨域問題
## 【手摸手,帶你搭建前後端分離商城系統】02 VUE-CLI 腳手架生成基本專案,axios配置請求、解決跨域問題。 回顧一下上一節我們學習到的內容。已經將一個 `usm_admin 後臺使用者` 表的基本增刪改查全部都完成了。並且通過`swagger` 測試了我們的介面資訊,並且順利通過測試。本節將通
【手摸手,帶你搭建前後端分離商城系統】03 整合Spring Security token 實現方案,完成主業務登入
## 【手摸手,帶你搭建前後端分離商城系統】03 整合Spring Security token 實現方案,完成主業務登入 上節裡面,我們已經將基本的前端 `VUE + Element UI` 整合到了一起。並且通過 `axios` 傳送請求到後端API。 解決跨域問題後、成功從後端獲取到資料。 本小結
手摸手帶你學CSS
> **好好學習,天天向上** > > 本文已收錄至我的Github倉庫[**DayDayUP**](https://github.com/RobodLee/DayDayUP):github.com/RobodLee/DayDayUP,歡迎Star [HTML常用標籤總結](https:/
手摸手帶你用Hexo擼部落格(二)之配置主題
[原文地址](https://blog.limeichao.cn/article/fdc79fa4.html) 在上一篇部落格[手摸手帶你用Hexo擼部落格(一)](https://www.cnblogs.com/big0range/p/14204956.html)中主要介紹了部落格的初步搭建 今天我們繼續講