问题一 >>> 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