Eleasticsearch2.4.5启动失败

今天按照了Elasticsearch2.4.5 ,但是执行./bin/elasticsearch -d 的时候报如下错误:
[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.
请问这是为什么啊,以前我用ES1.7版本怎么没有这个问题?
已邀请:

采菊篱下 - 无分享不快乐 助力技术开源分享 运维一枚

赞同来自: koyo

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"

要回复问题请先登录注册