準備安裝包和環境
jdk
由于es是基于java開發的所以需要安裝jdk。如果沒有安裝的話 jdk8下載 下載后配置環境變量安裝。
es
es6.8下載地址 elasticsearch-6.8.14.tar.gz
ik分詞器
es分詞器需要下載對應es版本的 elasticsearch-analysis-ik-6.8.14.zip
安裝es
es不推薦使用root賬戶下運行,如果本身不是root賬號可跳過此步。
創建es用戶組和用戶
groupadd es
useradd -g es es
解壓安裝包并移動到/usr/local/elasticsearch
。此目錄作為我們的安裝es軟件的目錄文件。
tar -xf elasticsearch-6.8.14.tar.gz
mv elasticsearch-6.8.14 /usr/local/elasticsearch
解壓ik分詞器并移動到es的plugins目錄中
cd /usr/local/elasticsearch/plugins
#創建ik目錄
mkdir ik
cd ik
#解壓到ik目錄中
unzip ~/elasticsearch-analysis-ik-6.8.14.zip
簡單編寫一個啟動腳本
vi start-es.sh
su - es-c "
cd /usr/local/elasticsearch
bin/elasticsearch
由于剛創建的start-es.sh
腳本沒有執行權限 需要授權一下
chmod +x start-es.sh
nohup運行es
由于此腳本并沒有在后臺運行 所以使用nohup測試一下后臺運行。
nohup start-es.sh &
運行后 jps能看到elasticsearch
進程表示啟動成功。
制作systemd進程管理
創建服務文件elasticsearch.service
`vim /etc/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
After=network.target[Service]
Type=forking
User=es
Group=es
ExecStart=/usr/local/elasticsearch/bin/elasticsearch -d
PrivateTmp=true
LimitNOFILE=65535
LimitNPROC=65535
LimitAS=infinity
LimitFSIZE=infinity
TimeoutStopSec=0
KillSignal=SIGTERM
KillMode=process
SendSIGKILL=no
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
保存后 依次執行:
systemctl daemon-reload
systemctl start elasticsearch
#開機自啟
systemctl enable elasticsearch
遇到的問題
問題一 max virtual memory areas vm.max_map_count [65530] is too low
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vim /etc/sysctl.conf
vm.max_map_count=655360
保存后 執行如下 立即刷新配置
sysctl -p
問題二
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
編輯文件保存后 重新執行命令生效,如果不生效 可能重啟系統試下。
vim /etc/security/limits.conf
* soft nofile 655350* hard nofile 655350
問題三 root賬號運行es會報錯的
換為非root賬號運行即可
`