CentOS下安装ElasticSearch7.9.2(无坑版)
准备目录
搞一个自己喜欢的目录
mkdir /usr/local/app
切换到该目录
cd /usr/local/app
下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz
选择其他版本
点击进入官网
https://www.elastic.co/guide/en/elasticsearch/reference/7.9/getting-started-install.html
下载地址
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
解压
tar -zxvf elasticsearch-7.9.2-linux-x86_64.tar.gz
切换到bin目录
cd elasticsearch-7.9.2/bin/
启动
进入安装目录的bin
目录下,执行以下命令启动服务。这里为了观察效果使用前台方式启动,如果想要以后台进程的方式启动,则需要在后面加上-d
参数
./elasticsearch
关闭
如果后端启动,需要关闭es
- 列出es进程
ps aux|grep elasticsearch
- kill第一个进程
kill -9 进程号
报错处理
!!!不出意外的话,会出错。
新建es用户
adduser es
授权
chown -R es /usr/local/app/elasticsearch-7.9.2/
注意
JDK 版本:安装 ElasticSearch7.9.2 不需要额外配置 JDK 环境,即使本地 JDK 版本不匹配也不影响启动。
配置允许外网访问
切换到 config 目录下,打开配置文件
vim elasticsearch.yml
修改如下:
当前节点的名称
node.name: node-1
修改绑定地址,默认为本机地址,此时只能在本机访问ElasticSearch服务,想要所有主机都能访问,则修改为0.0.0.0
network.host: 0.0.0.0
cluster.initial_master_nodes: [“node-1”]
切换用户
su - es
cd /usr/local/app/elasticsearch-7.9.2/bin/
./elasticsearch
启动后,可能会出现一些错误,如果 没有请忽略。
启动报错处理
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方式:
vim /etc/security/limits.conf
# 加入以下配置:
* soft nofile 65535
* hard nofile 65535
!!!不要忘记使用root用户修改后,重新切换到用户 es 之后才会生效
特别注意: 1:* 代表所有用户生效 2:es 代表 es 用户生效
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决方式:
vim /etc/sysctl.conf
# 加入以下配置:
# 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count=655360
刷新配置生效
sysctl -p
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
解决方式:
vim ../config/elasticsearch.yml
到此就可以启动成功了
开启防火墙9200
firewall-cmd --zone=public --add-port=9200/tcp --permanent
systemctl restart firewalld.service
如果是云服务,在安全组中开启9200端口
测试成功
elasticsearch的优化
内存优化(土豪请忽略)
常用的配置在两个文件里,分别是 elasticsearch.yml 和 jvm.options(配置内存)
jvm.options主要是进行内存相关配置,elasticsearch默认给的1g。
官方建议分配给es的内存不要超出系统内存的50%,预留一半给Lucene,因为Lucene会缓存segment数据提升检索性能;
内存配置不要超过32g,如果你的服务器内存没有远远超过64g,那么不建议将es的jvm内存设置为32g,因为超过32g后每个jvm对象指针的长度会翻倍,导致内存与cpu的开销增大。
但是!!!我的服务器只有2G,后续我还要安装kibana,为了能跑起来,我改了256M。