一、Elasticsearch下載
官網(wǎng)網(wǎng)站:https://www.elastic.co/cn/downloads/elasticsearch
本文采用v7.13.2版本
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
二、Elasticsearch安裝與配置
1.解壓并移到指定目錄
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz
mv elasticsearch-7.13.2 /usr/local
2.修改配置文件
cd /usr/local/elasticsearch-7.13.2/config
vim elasticsearch.yml
添加如下的配置信息,注意第五項(xiàng)是初始化節(jié)點(diǎn)的node name
# 啟用該物理機(jī)器所有網(wǎng)卡網(wǎng)絡(luò)訪問
network.host: 0.0.0.0
# 服務(wù)端口
http.port: 9200
# 是否支持跨域,默認(rèn)為false
http.cors.enabled: true
# 當(dāng)設(shè)置允許跨域,默認(rèn)為*,表示支持所有域名
http.cors.allow-origin: "*"
# 節(jié)點(diǎn)名稱
node.name: node-1
# 初始化節(jié)點(diǎn)的名稱
cluster.initial_master_nodes: ["node-1"]
3.啟動(dòng)elasticsearch服務(wù),默認(rèn)不允許root用戶啟動(dòng),新增用戶
#新增用戶
useradd elkadmin
#賦予用戶權(quán)限
chown -R elkadmin. /usr/local/elasticsearch-7.13.2
#切換到elkadmin用戶下
su elkadmin
# 啟動(dòng)es
sh /usr/local/elasticsearch-7.13.2/bin/elasticsearch -d
此時(shí)會(huì)報(bào)錯(cuò)

圖1
錯(cuò)誤1:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
修改配置
vim /etc/security/limits.conf
添加如下配置,保存退出
* soft nofile 65536
* hard nofile 65536
重新登錄后生效,可以使用下面2個(gè)命令查看當(dāng)前數(shù)量
ulimit -Hn
ulimit -Sn

image.png
錯(cuò)誤2:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
使用root用戶修改配置
vim /etc/sysctl.conf
添加 vm.max_map_count=262144,保存退出
生效配置
sysctl -p
配置結(jié)束后,再次啟動(dòng)es,成功!
查看es日志
cd /usr/local/elasticsearch-7.13.2/logs
tailf elasticsearch.log

image.png
使用curl命令與es交互
curl http://10.27.3.20:9200

image.png
默認(rèn)的es中沒有安裝中文分詞器,可手安裝中文分詞插件IK
ik插件地址:https://github.com/medcl/elasticsearch-analysis-ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.13.2/elasticsearch-analysis-ik-7.13.2.zip
到es的plugins路徑下新建ik,解壓完成后重啟es
cd /usr/local/elasticsearch-7.13.2/plugins
mkdir ik
mv /root/soft/elasticsearch-analysis-ik-7.13.2.zip /usr/local/elasticsearch-7.13.2/plugins/ik
unzip elasticsearch-analysis-ik-7.13.2.zip
測(cè)試ik中文分詞器
curl -X GET -H "Content-Type: application/json" "http://localhost:9200/_analyze?pretty=true" -d'{"text":"中華五千年華夏"}';

image.png
三、配置以systemctl方式管理Elasticsearch
新增service文件
vim /usr/lib/systemd/system/elasticsearch.service
文件中加入以下內(nèi)容
[Unit]
Description=elasticsearch
After=network.target
[Service]
Type=forking
# 指定用戶
User=elkadmin
# 指定es所在路徑
ExecStart=/usr/local/elasticsearch-7.13.2/bin/elasticsearch -d
PrivateTmp=true
# 指定此進(jìn)程可以打開的最大文件數(shù)
LimitNOFILE=65535
# 指定此進(jìn)程可以打開的最大進(jìn)程數(shù)
LimitNPROC=65535
# 最大虛擬內(nèi)存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超時(shí)設(shè)置 0-永不超時(shí)
TimeoutStopSec=0
# SIGTERM是停止java進(jìn)程的信號(hào)
KillSignal=SIGTERM
# 信號(hào)只發(fā)送給給JVM
KillMode=process
# java進(jìn)程不會(huì)被殺掉
SendSIGKILL=no
# 正常退出狀態(tài)
SuccessExitStatus=143
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535
[Install]
WantedBy=multi-user.target
加載配置信息
systemctl daemon-reload
設(shè)置開機(jī)啟動(dòng)
systemctl enable elasticsearch.service
相關(guān)命令
# 查看服務(wù)狀態(tài)
systemctl status elasticsearch.service
# 啟動(dòng)服務(wù)
systemctl start elasticsearch.service
# 重啟服務(wù)
systemctl restart elasticsearch.service
# 停止服務(wù)
systemctl stop elasticsearch.service
# 禁止開機(jī)啟動(dòng)
systemctl disable elasticsearch.service
# 啟用開機(jī)啟動(dòng)
systemctl enable elasticsearch.service