因为ES是基于Java虚拟机的,所以首先需要安装Java jdk,我是用的yum指令,有很多推荐自己下载jdk安装包的博客。其实都达到的是同一个目的,即在linux下安装jdk,yum较手动安装方便简洁不少。为什么不使用yum的安装方式呢?
安装好jdk就可以安装ES了,首先我们需要为Es新建一个用户,因为一般不会使用root用户来启动ES的,当然一般在公司里一般人也得不到root用户的权限。同时ES默认也是不能使用root用户来启动的,如果使用root用户来启动,启动时会报错。所以就安安心心的为ES创建一个ES专用用户吧。
创建完用户后确定自己要安装在哪个盘符下。选定需要安装的目录,然后打开ES官网,复制下载连接,使用wegt命令下载安装包。
安装包下载完毕后,与windows下安装的方式相同,只需解压便可开箱即用。但是存在一个问题,便是只能本地访问,被公网访问,这时我们需要更改一些配置。
首先打开我们Linux的防火墙。
然后更改ES的配置,将network.host:设置为network.host: 0.0.0.0
然后当用ES用户启动ES时会出现两个错误;
这时要更改linux的配置:
1.vim /etc/sysctl.conf
添加设置:
fs.file-max=655350
vm.max_map_count=655360
保存后输入指令 sysctl -p 使设置生效。
2.vim /etc/security/limits.conf 新增或更改
soft nofile 655350
hard nofile 655350
3.重启es服务便可以了。
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
elasticsearch启动时遇到的错误
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
解决:
切换到root用户
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
上述方法修改之后,如果重启虚拟机将失效,所以:
解决办法:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改