Linux 环境下 安装 Elasticsearch 7.13.2
- 前言
- 镜像下载(国内镜像地址)
- 解压安装包
- 修改配置文件用 Es 自带Jdk 运行
- 配置 Es 可被远程访问
- 然后启动
- 接着启动
- 本地测试一下能不能连 Es
前言
借公司的 centos 7 服务器,搭建一个 Es,正好熟悉熟悉 Linux 下的安装流程。
镜像下载(国内镜像地址)
https://mirrors.huaweicloud.com/elasticsearch/
进去选择自己要安装的 Es 版本下载即可,这里我选择 7.13.2
解压安装包
将下载到的包进行解压到当前文件夹下面
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 即可。
这里有俩种修改方式
- vim 编辑器
- 文件拷贝到本地,修改后上传
vim 编辑器实在是垃圾要一个个字母删很除容易出错,但是这里也介绍一下 vim 命令基础用法吧。
- 选择要编辑的文件
vim /usr/local/es/elasticsearch-7.13.2/bin/elasticsearch-env
- 键盘按 i 进入编辑模式
- 编辑完成后键盘按 esc 后,键盘输入 :wq 。代表保存后退出。也可以输入 :q! 只读强制退出。
配置 Es 可被远程访问
如果读者无需 Es 被远程访问的话,可跳过此章节。elasticsearch.yml 修改下面这三个地方即可
然后启动
切换到 Es 的 bin 目录下面输入 ./elasticsearch-7.13.2 -d ,表示后台运行如下图
启动后发现有 Error
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 保存
vm.max_map_count=655360
修改 etc/security/limits.conf 文件,文件末尾追加,然后重新登录 Linux
* soft nofile 65536
* hard nofile 65536
接着启动
root 用户启动不了,因此创建一个非 root 用户,一下命令在 root 用户下进行
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 端口,发现端口没有开放,开放一下然后重启防火墙。
firewall-cmd --state(查看防火墙是否开启)
systemctl start firewalld.service(开启防火墙)
firewall-cmd --zone=public --add-port=9200/tcp --permanent(永久开启 9200 端口)
systemctl restart firewalld.service (重启防火墙)
本地再次连测试服发现成功启动。