1.问题描述: 我明明是安装java8 elasticsearch启动时还是报 java版本错误.
执行elasticsearch的时候报错:错误: 找不到或无法加载主类 org.elasticsearch.tools.JavaVersionChecker
Elasticsearch requires at least Java 8 but your Java version from /usr/java/jdk1.8.0_73/bin/java does not meet this requiremen
解决方案 问题所在
创建一个文件夹 文件夹得名称是为es 将elasticsearch.6.02 拷贝到es里面. 创建es用户. 同时将es文件夹设置用户es权限. chown -R /es es 重启启动即可解决问题.
2问题描述: 虚拟内存不足 . 尝试扩大虚拟内存大小 但没有解决.
** VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)**
解决方案:
由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配
# vim config/jvm.options
-Xms2g --》修改为512m
-Xmx2g --》修改为512m
3,bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决方案
第一个
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
对于第二条错误同意需要切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
第三条错误需要切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
4、max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]
需要执行下面的命令
ulimit -n 65536
5、启动异常:ERROR: bootstrap checks failed
问题描述:
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
问题原因:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false