Elasticsearch简介
Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。【详情查看】
Elasticsearch安装准备
- Linux CentOS 7.8
- JDK 11 安装和教程
Elasticsearch 7.12.1
下载并解压:
cd /softwares
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
创建用户并授权
# 创建用户elasticuser
useradd elasticuser
# 给已创建的用户elastic设置密码
passwd elasticuser
#对elastic用户授权 (授权目录为安装目录)
chown -R elasticuser /software/elasticsearch-7.12.1
chmod -R 777 /software/elasticsearch-7.12.1
修改配置
编辑 config/elasticsearch.yml,在文件尾部追加一下内容,并保存
# ======================== Elasticsearch Configuration =========================
#配置elasticsearch的集群名称,默认是elasticsearch
cluster.name: my-elasticsearch-name
#节点名,elasticsearch会默认随机指定一个名字
node.name: node-1
#network.host:设置为0.0.0.0允许外网访问
network.host: 0.0.0.0
#Elasticsearch的http访问端口
http.port: 9200
#初始化新的集群时需要此配置来选举master
cluster.initial_master_nodes: node-1
启动Elasticsearch服务
切换到上面创建的非root的ES用户,elasticuser
su elasticuser
切换到elasticsearch-7.12.1/bin , 并执行
cd /softwares/elasticsearch-7.12.1/bin
./elasticsearch
如果看到started,则表示启动成功
注册服务并设置开机自启
vim /usr/lib/systemd/system/elasticsearch.service
保存以下信息
[Unit]
Description=elasticsearch
After=network.target
[Service]
Type=forking
User=elastic
ExecStart=/softwares/elasticsearch-7.12.1/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
刷新配置
systemctl enable elasticsearch.service
Elasticsearch服务相关命令
# 启动服务
systemctl start elasticsearch.service
# 重启服务
systemctl restart elasticsearch.service
# 停止服务
systemctl stop elasticsearch.service
# 禁止开机启动
systemctl disable elasticsearch.service
# 启用开机启动
systemctl enable elasticsearch.service
报错异常和解决方法
-
使用root用户启动报错:
切换到非root用户,运行elasticsearch
[root@xxx bin]# su elasticuser
[elasticuser@xxx bin]$ ./elasticsearch
-
内存不足报错:
# Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
killed服务,释放内存
./elasticsearch
killed
由于 elasticsearch7.12.1 默认分配 jvm 空间大小为4g,修改 jvm空间分配
修改elasticsearch安装目录下的config里的jvm.options
vim config/jvm.options
-Xms1g
-Xmx1g
#可根据自己服务器内存大小设置合适的内存值
#Xms512m
#Xmx512m
保存配置文件,重启即可
./elasticsearch
-
启动报错:
# max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
最大虚拟内存太小,在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
执行/sbin/sysctl -p 立即生效
/sbin/sysctl -p
重新启动elasticsearch即可
./elasticsearch