吼吼吼吼吼,可能之前用力过猛,最近颓废了两天,带着心里满满的愧疚感,昨晚终于坐不住了~想着在Linux环境下启动ES5.4.0,可是总是冒出各种幺蛾子问题。
以下问题不一定全部出现,但是,刚好我一次全都遇到了=.=,以下问题依次出现,作为Linux小白,在把它们解决后还是挺高兴的,总结一下,积累经验。
问题1: main ERROR Could not register mbeans java.security.AccessControlException: access denied (“javax.management.MBeanTrustPermission” “register”)或者 Permission denied.
分析:没有访问权限。
办法:在相应的命令前加sudo
,切换root身份运行命令即可。
问题2: Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME.
分析:无法使用java环境,这个很神奇,自己明明已经安装好了Java jdk并配置好了JAVA_HOME等。
办法:在相应的命令前加sudo -E
即可。
问题3: unable to load JNA native support library, native methods will be disabled.
分析: 无法使用java本地接入jna,这个神奇的不能再神奇了,ls
查看一下ES解压缩后的目录中的lib文件夹,明明是有jna jar包jna-4.4.0.jar 的。
办法:
1. 两种方式:(1). 把lib中的jna-4.4.0.jar移动到其它地方暂存(以防万一),比如移动到home目录中,在lib目录下执行命令:mv jna-4.4.0.jar /home
;(2).把lib中的jna-4.4.0.jar直接删掉,在lib目录下执行命令:rm jna-4.4.0.jar
2. 两种方式:(1).访问http://repo1.maven.org/maven2/net/java/dev/jna/jna/4.4.0/并手动下载jna-4.4.0.jar,然后把它移入lib文件夹中,可以通过FileZilla Client客户端。
(2).执行命令:wget http://repo1.maven.org/maven2/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar
,wget下载工具会自动下载好。源码可在https://github.com/java-native-access/jna下载。
当我在解决了问题3之后,满怀信心的试图再次启动ES服务,结果还是出错:
问题4: org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root.
分析:好嘛 ,不能用root身份启动ES,之前在遇到权限问题时,我都是通过在命令前添加sudo
从而以root身份执行命令的,现在启动命令竟然报错,哭笑不得~
办法:对普通用户放开可运行权限,在elasticsearch-5.4.0目录下执行命令:sudo 777 ./
( R:4, W:2, X:1)
心里想着此时重启ES服务应该不会有问题了吧,结果还是出错:
问题5: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144].
分析:是的,ES对于服务器的内存是有要求的,该版本ES5.4.0需要服务器内存至少2G。
办法:根据提示进行相应设置即可,需要修改的文件是/etc/sysctl.conf,执行命令:nano /etc/sysctl.conf
(nano是我的Linux文本编辑器,简单实用),在该文件中看是否有vm.max_map_count=...
,如果有,把数字改为262144,如果没有,就在最后追加一句:vm.max_map_count=262144
即可。
现在,再到/elasticsearch-5.4.0/bin目录下,直接执行命令:./elasticsearch
,启动成功!
[2018-01-11T16:30:57,696][