Elasticsearch安装教程(CentOS 7.8)

1,930 阅读3分钟

Elasticsearch简介

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。【详情查看

Elasticsearch安装准备

Elasticsearch 7.12.1

官网下载地址

image.png

image.png

下载并解压:

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

image.png

启动Elasticsearch服务

切换到上面创建的非root的ES用户,elasticuser

su elasticuser

切换到elasticsearch-7.12.1/bin , 并执行

cd /softwares/elasticsearch-7.12.1/bin

./elasticsearch

如果看到started,则表示启动成功 image.png

可访问 http://IP地址或域名:9200/

image.png

注册服务并设置开机自启

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

image.png

Elasticsearch服务相关命令

# 启动服务
systemctl start elasticsearch.service
# 重启服务
systemctl restart elasticsearch.service
# 停止服务
systemctl stop elasticsearch.service
# 禁止开机启动
systemctl disable elasticsearch.service
# 启用开机启动
systemctl enable elasticsearch.service

报错异常和解决方法

  • 使用root用户启动报错:

image.png

切换到非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