最近在学习ElasticSearch,在服务器上安装了一个,以下是我在安装过程中遇到的坑,记录一下。
环境:Linux系统,ElasticSearch5.6(第一次装的是新的,和JDK冲突,换到的老版本)
-
JDK版本问题
我是最近安装的,可能版本更新太快了吧,服务器还在使用JDK8,然而最新的ElasticSearch要求JDK11,没办法,只能找以前的版本安装(毕竟服务器有些东西是跑在JDK8上的)
安装我现在的版本的命令是:curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
安装教程就不说了,网上应该一大堆 -
内存不足问题
如上图内存不足,然而我服务器是学生机一共才2G内存,默认的就是2G!!!这不是坑我玩嘛,没办法只能修改默认内存了
操作ElasticSearch配置文件夹下的jvm.options配置文件
vim jvm.options
将默认内存修改为指定(本文为256M)还有数据库、Redis需要用,穷
-Xms256m
-Xmx256m
-
用户问题
一般我们登录系统都是用root用户,然而ElasticSearch为了安全不允许使用root用户操作,会报下图错误:
解决办法是创建新的用户并给创建的用户授权即可
创建用户(这里使用adduser而不是useradd,否则你就会遇到下面一个问题)
adduser myes
设置用户密码(一般要输入两次)
passwd myes
授权文件夹操作(实际上我是给这个新用户授权了所有操作)
chown -R elasticsearch-5.6.16 myes
sudo到这个新的用户下启动即可 -
找不到Java环境
上一步如果你是使用的useradd那么你基本上90%会遇到这个问题,一般我们的JDK都是使用的root用户安装的,这就造成新创建的这个用户并没有这个环境,好吧,添加还不行吗?但是如果你是使用的useradd方式,那么基本上home文件夹下不会自动为你创建用户文件夹(不信可以试试)
解决办法:
进入到当前用户的home权限配置修改.profile文件,配置环境参数(参数同安装jdk一致),保存并退出,执行source .profile
使配置文件生效,回到ES的文件夹下继续启动,一般如果java -version
成功就不会再报错JDK环境找不到。如果你遇到这个情况,sudo切换用户之后JDK环境没了!!!每次都要执行
source .profile
使配置文件生效才行,那么恭喜你遇到了和我一样的问题。。。
解决办法:
修改,bashrc文件,配置和JDK配置相同,具体原理可以上网查看一下Linux系统用户配置文件加载顺序!! -
参数配置不足
这个嘛,我想大概也就只有我这台服务器会这样了,毕竟是学生机,配置只够学习的。下面是报错内容:[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least[262144]
解决办法
[1]:修改/etc/security/limits.conf配置文件
* soft nproc 65536
* hard nproc 65536
[2]:修改/etc/sysctl.conf文件
修改配置如下:vm.max_map_count=262144
保存退出,使配置生效:sysctl -p