天天看点

Eleasticsearch启动失败问题解决

问题:

[root@dnode1 bin]# ./elasticsearch -d
[root@dnode1 bin]# Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
Refer to the log for complete error details.      
解答:
Elasticsearch 2.*版本之后出于对系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,默认如果使用root用户运行就会报"java.lang.RuntimeException"的错误,解决如下:
           
1、添加使用root运行的参数
vi bin/elasticsearch
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
或者设置别名:
alias elasticsearch='elasticsearch -Des.insecure.allow.root=true'
可以添加到/root/.bashrc 中让其生效
或者启动直接传参启动:
bin/elasticsearch -Des.insecure.allow.root=true
2、添加普通用户启动
创建elsearch用户组及elsearch用户 :      
groupadd elsearch
useradd elsearch -g elsearch           
更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch :      
chown -R elsearch:elsearch  elasticsearch           
使用elsearch用户启动elasticsearch:      
cd elasticsearch/bin
runuser -l elsearch -c "./elasticsearch -d"           

不要让懒惰占据你的大脑,不让要妥协拖跨你的人生。青春就是一张票,能不能赶上时代的快车,你的步伐掌握在你的脚下,good luck