Linux系统下安装elasticsearch6.8并配置ik分词
准备安装包和环境
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账号运行即可
`