如同磁铁吸引四周的铁粉,热情也能吸引周围的人,改变周围的情况。

关于 Mac 使用 tar 命令安装 ES 后启动异常

匿名 | 发布于2018年03月04日 | 阅读数:4973

在普通用户下执行提示权限不足,提示如下
 localhost:elasticsearch-6.2.2 apple$ sudo bin/elasticsearch

[2018-03-04T13:56:53,211][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.2.jar:6.2.2]

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.2.jar:6.2.2]

    ... 6 more
 
然后切换 root 权限(su - 或者 sudo -i 或者 su root)提示如下
 
localhost:elasticsearch-6.2.2 root# bin/elasticsearch          

[2018-03-04T13:59:08,752][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]

    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.2.jar:6.2.2]

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.2.jar:6.2.2]

    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.2.jar:6.2.2]

    ... 6 more
 
大概意思就是 ES 有执行脚本的能力,因安全因素,不能在 root 用户下运行,于是网上找到如下操作
 
操作1:
./elasticsearch -Des.insecure.allow.root=true  相当于开启 root 限制
 
操作2:(由于 Mac 下没有 groupadd & useradd 遂放弃)
groupadd es          #增加es组
useradd es -g es -p pwd          #增加es用户并附加到es组
chown -R es:es elasticsearch-5.1.1          #给目录权限
su es          #使用es用户
./bin/elasticsearch -d          #后台运行es 
 
结果按照操作一执行后既不报错也没有提示启动成功,实际在监视器也确实没有 es 的进程号开着
 
因为是照着官网来的,安装的是 elasticsearch-6.2.2,后续还会对 X-pack & Kibana 进行安装应用,所以想按部就班的来,望各位朋友解惑。
 
已邀请:

drfeelin

赞同来自:

这个问题也是莫名奇妙,最后使用 Max 缺失软件包管理工具 Homebrew 安装完后就可以了,但是在登录 ES 会弹出验证输入用户名和密码,不知道怎么回事,网上有说是基于http-basic 什么包来着但是我好像没设过密码什么的

要回复问题请先登录注册