1. 程式人生 > >原創 | 手摸手帶您學會 Elasticsearch 單機、叢集、外掛安裝(圖文教程)

原創 | 手摸手帶您學會 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, 你可以自行修改。
  • XmxXms 數值請設定相同;
  • 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 個節點,分別是 node0node1node2node3

啟動命令如下:

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)中主要介紹了部落格的初步搭建 今天我們繼續講