【Elasticsearch】常见问题——Elasticsearch用户问题/JDK版本问题/系统资源配置问题/不支持落后组件问题

时间:2025-04-09 12:07:11

问题一 >>> Elasticsearch用户问题

报错:

[WARN ][] [] uncaught exception in thread[main]
: : can not run elasticsearch as root

分析:

字面意思,不允许使用root用户运行Elasticsearch。

其实,ElasticSearch为了安全起见,不允许以root用户登录,需要切换其他系统用户。

解决:

切换用户,赋予权限。

# 添加用户
useradd elasticsearch;
# 授予权限
chown -R elasticsearch:elasticsearch elasticsearch-x.x.x;
# 切换用户
su elasticsearch

# 启动
./bin/elasticsearch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

 
 

问题二 >>> JDK版本问题

报错:

Exception in thread “main” :
org/elasticsearch/tools/java_version_checker/JavaVersionChecker : Unsupported version 51.0

分析:

报错信息里出现了51这个数字,它的含义是你至少应该使用JDK7。(这里再补充几个数字与版本的对应关系:52.0/8.0、51.0/7.0、50.0/1.6、49.0/1.5)

什么,JDK版本竟然过低?不妨echo一下:

[elasticsearch@mac bin] echo $JAVA_HOME
/usr/java/default
  • 1
  • 2

果然,Elasticsearch默认找错了路径,使用的并不是jdk1.8.0_181。

解决:

配置启动脚本,手动指定启动使用的JDK。

# 进入启动脚本
vim bin/elasticsearch

# 追加两行,指定JDK
export JAVA_HOME=/home/yutao/jdk1.8.0_181/
export PATH=$JAVA_HOME/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

 
 

问题三 >>> 系统资源配置问题

报错:

1)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

2)max number of threads [2048] for user [chenyn] is too low, increase to at least [4096]

3)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

分析:

1)文件句柄不足

2)启动最大线程数限制

3)设定虚存不足

解决

1)

# 进入配置文件
vim /etc/security/limits.conf
# 追加/修改
soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2)

# 进入配置文件
vim /etc/security/limits.d/20-nproc.conf
# 追加/修改
soft nproc 4096
  • 1
  • 2
  • 3
  • 4

3)

# 进入配置文件
vim /etc/sysctl.conf
# 追加/修改
vm.max_map_count=262144
# 使配置生效
sysctl -p
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

 
 

问题四 >>> 不支持落后组件问题

报错:

[unknown] unable to install syscall filter:
: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

分析:

Centos6之后不支持SecComp,而Elasticsearch默认启用。

解决:

禁用即可。

# 进入配置文件
vim config/elasticsearch.yml

# 追加/修改
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6