Elasticsearch使用系列-ES簡介和環境搭建

包子wxl 發表於 2022-01-20
ElasticSearch

一、簡介

  Elasticsearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜尋引擎,其次是Apache Solr,也是基於Lucene。

能解決問題:全文索引,大資料量秒查詢,PB級別資料搜尋,毫秒級響應,支援結構化查詢,完整api介面,自動備份,叢集穩定,擴容方便

使用場景示例:商城,文章類網站,單表資料量太大,日誌系統儲存,報表統計查詢慢。

二、Windows搭建ES

1.安裝java jdk,安裝java11以上。

下載地址:https://www.oracle.com/java/technologies/downloads

Elasticsearch使用系列-ES簡介和環境搭建

 

 

下載後直接雙擊安裝,不需要配環境變數。

2.下載ES,官網:https://www.elastic.co/cn/downloads/elasticsearch

如果要下載前面的版本,這個地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Elasticsearch使用系列-ES簡介和環境搭建

 

 現在下載的是當前7.x的最新版本7.16.3

下載完解壓後進入到config目錄的jvm.options,修改配置,把預設的4g改成512m,這裡是本地測試使用不需要這麼高記憶體。

Xmx:能夠使用的最大記憶體數。

Xms:用來設定程式初始化的時候記憶體棧的大小。

Elasticsearch使用系列-ES簡介和環境搭建

 

修改config目錄下的elasticsearch.yml檔案。

network.host填上自己的ip,如果不改,只能用localhost和127.0.0.1訪問ES,也可以填0.0.0.0,這樣暴露全部的網路地址都可以訪問。

Elasticsearch使用系列-ES簡介和環境搭建

 

 

 然後回到bin目錄,雙擊elasticsearch.bat啟動。

Elasticsearch使用系列-ES簡介和環境搭建

 

 啟動成功後,瀏覽器輸入 http://ip:9200看是否成功,如果出現下面就是搭建成功了。

Elasticsearch使用系列-ES簡介和環境搭建

 

三、Linux搭建ES

這裡用的是CentOS7.9

1.安裝 java jdk

官網: https://www.oracle.com/java/technologies/downloads/

 Elasticsearch使用系列-ES簡介和環境搭建

 

 這裡用rpm包的方式安裝,下載下來上傳到Linux伺服器,或直接在linux伺服器下載,這裡選擇後者。

先建一個資料夾存放es檔案,這裡的目錄為/home/es

#建立es目錄
mkdir /home/es
#進入es目錄
cd /home/es

下載es的rpm和安裝

#下載elasticsearch rpm包檔案
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
#授許可權
chmod +x jdk-17_linux-x64_bin.rpm#安裝
rpm -ivh jdk-17_linux-x64_bin.rpm

安裝完成,檢視java版本

java -version

Elasticsearch使用系列-ES簡介和環境搭建

到這裡java sdk安裝完成了,上面的rpm檔案也可以刪除了。

2.調高jvm執行緒數限制,不然啟動es會報錯

#修改sysctl.conf
vi /etc/sysctl.conf

#修改max_map_count調大,如果沒有這個設定,則新增一行
vm.max_map_count=262144

#改完儲存後, 執行下面命令讓sysctl.conf檔案生效
sysctl -p

3.修改limits.conf檔案

不然啟動時會報這個錯誤: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

#修改檔案
vi /etc/security/limits.conf

在後面增加這兩行,如果有就不用了:

* soft nofile 65536
* hard nofile 65536

修改完檔案後在使用命令修改一遍

ulimit -n 65536

 

4.下載ES

官網:https://www.elastic.co/cn/downloads/elasticsearch

Elasticsearch使用系列-ES簡介和環境搭建

 

 

 下載上傳到linux伺服器,或直接在linux伺服器下載,這裡選擇後者。

#下載es壓縮包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz
#解壓
tar -zxvf elasticsearch-7.16.3-linux-x86_64.tar.gz

解壓完後的資料夾 elasticsearch-7.16.3

Elasticsearch使用系列-ES簡介和環境搭建

 

進入解壓的目錄看一下結構

Elasticsearch使用系列-ES簡介和環境搭建

5.修改配置檔案 elasticsearch.yml

#修改配置檔案
vi config/elasticsearch.yml

Elasticsearch使用系列-ES簡介和環境搭建

 

 

6.建立一個普通使用者

因為es預設不能通過root使用者啟動,所以需要建一個普通使用者

#建立一個名為elastic的使用者
adduser elastic
#修改使用者elastic的密碼
passwd elastic

把/home/es 目錄下的許可權給elastic使用者

#給es使用者迭代許可權
chgrp -R elastic  /home/es
chown -R elastic  /home/es
#把es目錄許可權變為可讀可執行
chmod 777 /home/es

 

切換為elastic 使用者

#把當前登入使用者切換為elastic使用者
su elastic

從root使用者變成了elastic使用者

Elasticsearch使用系列-ES簡介和環境搭建

 

 

 7.啟動es

#進入es檔案目錄
cd elasticsearch-7.16.3
#啟動es -d表示後臺啟動
bin/elasticsearch -d

 看到這個介面就是安裝成功啦!如果區域網訪問不到,看防火牆是否沒關。

 Elasticsearch使用系列-ES簡介和環境搭建

 

 

四、Docker搭建ES

1.先安裝docker環境

參考:https://www.cnblogs.com/wei325/p/15139701.html

2.新建elasticsearch.yml配置檔案

新建elasticsearch.yml配置檔案並上傳到主機目錄用於配置檔案掛載,方便後面修改,這裡上傳到/home/es目錄。

具體有什麼其它配置可以參考前面兩種安裝方式裡面的elasticsearch.yml檔案,是一樣的。

http.host: 0.0.0.0
#跨域
http.cors.enabled:  true 
http.cors.allow-origin:  "*"

位置如下:

Elasticsearch使用系列-ES簡介和環境搭建

 

 3.docker 拉取es映象

#拉取映象,指定版本號
 docker pull elasticsearch:7.16.3

 

 

 Elasticsearch使用系列-ES簡介和環境搭建

 

 4.把映象啟動為容器

docker run -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms128m -Xmx256m" -v /home/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.16.3
#9200是對外埠,9300是es內部通訊埠
#-e ES_JAVA_OPTS="-Xms128m -Xmx256m"  Xms初始化時記憶體棧大小,Xms程式限制佔用記憶體
#-v 把配置檔案掛載到es的docker裡的配置檔案

檢視啟動的容器

Elasticsearch使用系列-ES簡介和環境搭建

 

 搭建完成,瀏覽器開啟 http://ip:9200看到下面的介面就搭建成功了。

Elasticsearch使用系列-ES簡介和環境搭建