解决elasticsearch启动时常见的错误

YYDU 2020-05-29

注:elasticsearch需要jdk8以上的环境,需要先安装有jdk8以上,才能运行。

错误1:不能以root用户运行

org.elasticsearch.bootstrap.StartupException: 
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125)

注:出于安全考虑,elasticsearch默认不允许以root账号运行。故需要创建一个用户

解决办法:

创建用户,切换到创建的用户,再运行。

下面这个链接,第二步中 有详细centos7创建用户,用户组配置的过程。

centos7安装 Elasticsearch链接:https://blog.csdn.net/qq_41357211/article/details/99991666

错误2:文件权限不够

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

这是切换自己创建的用户后运行时,因为不是root,所以文件权限不够。

解决办法:

先切换到root用户登录,然后修改配置文件:

[ bin]# vim /etc/security/limits.conf

 配置文件中添加以下内容: (注意带*)

* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

记得修改完,先切换到自己创建的用户,再运行elasticsearch

错误3:用户拥有的内存权限太小,至少least [262144]

ERROR: [1] bootstrap checks failed
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 解决办法:

先切换到root用户下,然后执行修改配置文件

( 没有这个文件的话:root用户下vim会自动创建一个新的;自己创建的用户下,不额外配置的话,vim没有权限创建 )

所以说,先切换到root用户下

[ bin]$ su root

[ bin]$ vim /etc/sysctl.conf

文件中添加以下内容:

vm.max_map_count=655360

 然后执行命令:

sysctl ‐p
  记得修改完,先切换到自己创建的用户,再运行elasticsearch

错误4:线程数不够

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

先切换到root用户下,然后执行修改配置文件

[ bin]$ vim /etc/security/limits.d/90‐nproc.conf

修改文件中内容:

* soft nproc 1024

改为:

* soft nproc 4096

错误5:权限不足

2019-08-22 03:16:26,465 main ERROR RollingFileManager 
(/home/leyou/elasticsearch/logs/elasticsearch.log) 
java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够) 
java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够)

解决办法:

 切换到root用户下,再cd 到 elasticsearch安装目录下,进行用户授权

# 修改elasticsearch用户组在当前目录下的权限(带点)
[ elasticsearch]# chgrp -R elasticsearch .
# 修改leyou用户在当前目录下的权限(带点)
[ elasticsearch]# chown -R leyou .
错误6:内核过低

unable to install syscall filter: 
java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with

该错误发生在centos6或低版本系统,elasticsearch的插件要求linux内核至少3.5以上系统。

解决办法:

修改conf目录下的elasticsearch.yml,在文件最下面添加配置:

bootstrap.system_call_filter: false

 重启即可。


原文链接:https://blog.csdn.net/qq_41357211/article/details/100011139

相关推荐