一、簡介
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。
下載後直接雙擊安裝,不需要配環境變數。
2.下載ES,官網:https://www.elastic.co/cn/downloads/elasticsearch
如果要下載前面的版本,這個地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
現在下載的是當前7.x的最新版本7.16.3
下載完解壓後進入到config目錄的jvm.options,修改配置,把預設的4g改成512m,這裡是本地測試使用不需要這麼高記憶體。
Xmx:能夠使用的最大記憶體數。
Xms:用來設定程式初始化的時候記憶體棧的大小。
修改config目錄下的elasticsearch.yml檔案。
network.host填上自己的ip,如果不改,只能用localhost和127.0.0.1訪問ES,也可以填0.0.0.0,這樣暴露全部的網路地址都可以訪問。
然後回到bin目錄,雙擊elasticsearch.bat啟動。
啟動成功後,瀏覽器輸入 http://ip:9200看是否成功,如果出現下面就是搭建成功了。
三、Linux搭建ES
這裡用的是CentOS7.9
1.安裝 java jdk
官網: https://www.oracle.com/java/technologies/downloads/
這裡用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
到這裡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
下載上傳到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
進入解壓的目錄看一下結構
5.修改配置檔案 elasticsearch.yml
#修改配置檔案 vi config/elasticsearch.yml
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使用者
7.啟動es
#進入es檔案目錄 cd elasticsearch-7.16.3 #啟動es -d表示後臺啟動 bin/elasticsearch -d
看到這個介面就是安裝成功啦!如果區域網訪問不到,看防火牆是否沒關。
四、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: "*"
位置如下:
3.docker 拉取es映象
#拉取映象,指定版本號 docker pull elasticsearch:7.16.3
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裡的配置檔案
檢視啟動的容器
搭建完成,瀏覽器開啟 http://ip:9200看到下面的介面就搭建成功了。