最新稳定版的ES 5.5.x版本对系统环境要求比较苛刻,如果不满足的话,是无法正常启动的。大家可以在ElasticSearch入门学习到如何安装ES实例,这里呢,主要向大家介绍如何解决ES在CentOS 6下无法正常启动的问题。
机器环境- CentOS 6.3 x64
- Oracle JDK 1.8
- fd 最低需要65536
- vm 最低262144
- max locked memory最低64
JVM参数注意 要以root身份执行下面的脚本,执行后要重新登录普通账户启动ES
#!/bin/bash echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf echo "* soft memlock unlimited" >> /etc/security/limits.conf echo "* hard memlock unlimited" >> /etc/security/limits.conf echo "vm.max_map_count = 262144" >> /etc/sysctl.conf sysctl -p ulimit -l unlimited
ES 5.5.x的JVM参数配置方式和以往2.x等版本不同,它独立出了一个jvm.options的文件在config目录下,我们可以通过修改jvm.options里的参数来指定ES启动需要的JVM环境,比如ES默认是2G堆内存,当内存不足时,我们可以进行提升,如下:
-Xms4g
-Xmx4g
除此之外,我们还可以针对性的做各种调整,这里就不再赘述JVM的各参数用法。
启动报错问题在CentOS 6下运行ES 5.5.x版本时,可能会遇到如下报错信息:
bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed...
[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
遇到这些错误信息不要慌,这是因为CentOS 6内核不支持SecComp,而ES 5.5.x默认是要执行检测命令的,所以这里我们把这个环境检测禁掉,就可以正常运行了,参数如下:
bootstrap.system_call_filter: false
在配置文件elasticsearch.yml追加即可
总结
ElasticSearch 5.5.x 相对以前的2.x版本,是基于Lucene 6来构建的,它增加了36%的查询速度,增加了71%的索引速度,并且减少了66%的硬盘空间占用,还较少了85%的内存使用,同时还新增IP字段,以支持IP4和IP6,在各方面超越了以往的历史版本,希望大家能够通过学习ElasticSearch入门这门课程,提升自己的核心竞争力,也祝大家能够步步高升,生活愉快^_^。
热门评论
瓦力老师,我在Linux上启动好了,但是在我windows上访问主机ip+":92000",访问不了。在Linux上通过wget http://127.0.0.1:9200 就能访问,请问这是怎么回事呢?网络环境是通的
linux版本的安装能不能详细说一下,不像视频那样你说的那么简单,一启动一堆问题,要安装什么插件你也没有说
es 6.0 以后版本将取消 type 属性,都是能否写编手记详细说说