CentOS下安装ElasticSearch7.9.2(无坑版)

准备目录

搞一个自己喜欢的目录

shell 复制代码
mkdir /usr/local/app

切换到该目录

shell 复制代码
cd /usr/local/app

下载

shell 复制代码
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

解压

shell 复制代码
tar -zxvf elasticsearch-7.9.2-linux-x86_64.tar.gz

切换到bin目录

shell 复制代码
cd elasticsearch-7.9.2/bin/

启动

进入安装目录的bin目录下,执行以下命令启动服务。这里为了观察效果使用前台方式启动,如果想要以后台进程的方式启动,则需要在后面加上-d参数

shell 复制代码
./elasticsearch

关闭

如果后端启动,需要关闭es

  • 列出es进程
shell 复制代码
ps aux|grep elasticsearch
  • kill第一个进程
shell 复制代码
kill -9 进程号

报错处理

!!!不出意外的话,会出错。

新建es用户

shell 复制代码
adduser es

授权

shell 复制代码
chown -R es /usr/local/app/elasticsearch-7.9.2/

注意

JDK 版本:安装 ElasticSearch7.9.2 不需要额外配置 JDK 环境,即使本地 JDK 版本不匹配也不影响启动。

配置允许外网访问

切换到 config 目录下,打开配置文件

shell 复制代码
vim elasticsearch.yml

修改如下:

当前节点的名称

node.name: node-1

修改绑定地址,默认为本机地址,此时只能在本机访问ElasticSearch服务,想要所有主机都能访问,则修改为0.0.0.0

network.host: 0.0.0.0

cluster.initial_master_nodes: "node-1"

切换用户

shell 复制代码
su - es
shell 复制代码
cd /usr/local/app/elasticsearch-7.9.2/bin/
shell 复制代码
./elasticsearch

启动后,可能会出现一些错误,如果 没有请忽略。

启动报错处理

1: max file descriptors 4096 for elasticsearch process is too low, increase to at least 65535

解决方式:

shell 复制代码
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 解决方式:

shell 复制代码
vim /etc/sysctl.conf 
# 加入以下配置:
# 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count=655360

刷新配置生效

javascript 复制代码
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

解决方式:

javascript 复制代码
vim ../config/elasticsearch.yml

到此就可以启动成功了

开启防火墙9200

shell 复制代码
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。

相关推荐
名字还没想好☜2 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
乌恩大侠3 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
tangwangbi3 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
蜀道山老天师4 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
草邦设计开发团队_媒体资源平台4 小时前
GEO 信源整合一键发布软文:从内容生产到流量获客的自动化实践
运维·人工智能·自动化
zhou lily4 小时前
非标自动化管理系统ERP如何选?2026年10大ERP软件对比分析
运维·自动化
mengge.cloud4 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
云贝贝贝5 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
小五传输5 小时前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全
金智维科技官方5 小时前
财务核算如何提效?这三条核心链路正在加速自动化
运维·人工智能·ai·自动化·财务·智能体