Linux 环境下 安装 Elasticsearch 7.13.2

Linux 环境下 安装 Elasticsearch 7.13.2

前言

借公司的 centos 7 服务器,搭建一个 Es,正好熟悉熟悉 Linux 下的安装流程。

镜像下载(国内镜像地址)

https://mirrors.huaweicloud.com/elasticsearch/

进去选择自己要安装的 Es 版本下载即可,这里我选择 7.13.2

解压安装包

将下载到的包进行解压到当前文件夹下面

javascript 复制代码
tar -zxvf /Users/zhangzixing/Downloads/elasticsearch-7.13.2-linux-x86_64.tar.gz

当然你也可以添加 -C 参数,后面指定解压路径,解压到指定文件夹下面

这里贴一张我司服务器上 es 的安装位置

修改配置文件用 Es 自带Jdk 运行

由于我司的项目没用 Jdk11(读者服务器用的Jdk11 可以忽略此章节),因此需要修改 es 配置文件使用自带的 Jdk 11 运行。修改 elasticsearch-env 文件。

修改文件前养成良好的习惯先备份,备份的文件内容是这样的

将我圈红的这些删掉,默认用绑定的 Jdk11 即可。

这里有俩种修改方式

  1. vim 编辑器
  2. 文件拷贝到本地,修改后上传

vim 编辑器实在是垃圾要一个个字母删很除容易出错,但是这里也介绍一下 vim 命令基础用法吧。

  1. 选择要编辑的文件
javascript 复制代码
vim /usr/local/es/elasticsearch-7.13.2/bin/elasticsearch-env
  1. 键盘按 i 进入编辑模式
  2. 编辑完成后键盘按 esc 后,键盘输入 :wq 。代表保存后退出。也可以输入 :q! 只读强制退出。

配置 Es 可被远程访问

如果读者无需 Es 被远程访问的话,可跳过此章节。elasticsearch.yml 修改下面这三个地方即可

然后启动

切换到 Es 的 bin 目录下面输入 ./elasticsearch-7.13.2 -d ,表示后台运行如下图

启动后发现有 Error

javascript 复制代码
ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/es/elasticsearch-7.13.2/logs/elasticsearch.log

修改 etc 目录下的 sysctl.conf 文件文件末尾追加,然后输入 sysctl -p 保存

javascript 复制代码
vm.max_map_count=655360

修改 etc/security/limits.conf 文件,文件末尾追加,然后重新登录 Linux

javascript 复制代码
* soft nofile 65536
* hard nofile 65536

接着启动

root 用户启动不了,因此创建一个非 root 用户,一下命令在 root 用户下进行

javascript 复制代码
adduser es
passwd es(后面回车输入密码、然后确认密码即可)
chown -R es:es /usr/local/es/elasticsearch-7.13.2 (对 es 用户授予文件夹访问权限)
su es

切换到 es 用户后启动 elasticsearch-7.13.2,发现启动成功了。

本地测试一下能不能连 Es

发现连不上说什么网络错误,检查一下 linux 防火墙有没有开放 9200 端口,发现端口没有开放,开放一下然后重启防火墙。

javascript 复制代码
firewall-cmd --state(查看防火墙是否开启)
systemctl start firewalld.service(开启防火墙)
firewall-cmd --zone=public --add-port=9200/tcp --permanent(永久开启 9200 端口)
systemctl restart firewalld.service (重启防火墙)

本地再次连测试服发现成功启动。

相关推荐
初圣魔门首席弟子几秒前
核心 Bug:客户端与服务器端口不匹配(导致请求无法送达)
linux·网络
weixin_307779138 分钟前
Jenkins Pipeline: Multibranch 插件详解:现代CI/CD的多分支管理利器
运维·开发语言·自动化·jenkins·etl
福尔摩斯张9 分钟前
TCP协议深度解析:从报文格式到连接管理(超详细)
linux·c语言·网络·c++·笔记·网络协议·tcp/ip
刀刀是个萌妹子10 分钟前
使用CloneZilla还原操作系统
linux·运维·服务器
列逍11 分钟前
Linux文件(二)
linux·磁盘·文件系统·挂载·软硬链接·缓冲区
一个平凡而乐于分享的小比特19 分钟前
U-Boot 和 Linux 内核的关系及设备树详解
linux·设备树·uboot
m0_6324825023 分钟前
Jenkins + Pytest +allure接口自动化测试配置与操作
jenkins·集成测试·pytest·jenkins配置
AI逐月32 分钟前
Git 停止追踪已提交文件问题
大数据·git·elasticsearch
eddy-原35 分钟前
全链路 DevOps 实战:基于 Jenkins、GitLab、Prometheus 与 SonarQube 的持续集成、部署、监控与优化
运维·jenkins
Sleepy MargulisItG38 分钟前
【Linux网络编程】UDP Socket
linux·网络·udp