首先吐个槽。。。这鬼玩意搞了我两天,现在人都傻了。
首先先把最容易忽视的问题放在最前面:
1、检查你的centos系统的是32位还是64位的
2、检查你的jdk版本是多少,是32位的还是64位的
3、检查你的这个elasticsearch的版本是多少的只支持多少位的系统和jdk。(而且好像elasticserch6没有32位的)
一些错误信息忘记保存了
先说这个最主要的 :
!!错误问题:
unable to load JNA native support libraay,native methods will be disabled.
这个图是借用的,
解决方法:
不用多想,要么就是,你的系统不对,或者是你的jdk不对。必须要统一。你的是64位的系统那就必须需要64位的jdk才行(64位的系统是可以装32位的jdk的)。
下面的都是一些常见的错误的:
错误1:内核过低
我们使用的是centos6,其linux内核版本为2.6。而Elasticsearch的插件要求至少3.5以上版本。不过没关系,我们禁用这个插件即可。
修改elasticsearch.yml文件,在最下面添加如下配置:
bootstrap.system_call_filter: false
错误2:文件权限不足
再次启动,又出错了:
错误问题
[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
我们用的是leyou用户,而不是root,所以文件权限不足。
首先用root用户登录。
然后修改配置文件:
vim /etc/security/limits.conf
添加下面的内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
错误3:线程数不够
刚才报错中,还有一行:
错误问题
[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
这是线程数不够。
继续修改配置:
vim /etc/security/limits.d/90-nproc.conf
修改下面的内容:
* soft nproc 1024
改为:
* soft nproc 4096
错误4:进程虚拟内存
错误问题:
[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件, :
vim /etc/sysctl.conf
添加下面内容:
vm.max_map_count=655360
然后执行命令:
sysctl -p
最后在启动成功后,你要是在linux中可以访问,在外部访问不了,那就需要改防火墙,
将
这个文件中的改为
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问
是重点 -----》》》》》 防火墙