使用Elasticsearch5.0 必须安装jdk1.8
[elsearch@vm-mysteel-dc-search01 bin]$ java -version java version "1.8.0_112" Java(TM) SE Runtime Environment (build 1.8.0_112-b15) Java HotSpot(TM) -Bit Server VM (build 25.112-b15, mixed mode) [elsearch@vm-mysteel-dc-search01 bin]$
使用root账号启动es后 会遇到以下问题
[2016-11-14T10:05:29,358][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:116) ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:103) ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:73) ~[elasticsearch- 5.0.0.jar:5.0.0]
解决方案:
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
建议创建一个单独的用户用来运行ElasticSearch
创建elsearch用户组及elsearch用户
groupadd elsearch useradd elsearch -g elsearch -p elasticsearch
使用elsearch启动ES后 又会遇到以下问题
ERROR: bootstrap checks failed max file descriptors [] ] max number of threads [] ] max ] likely too low, increase to at least [] [--14T10::,][INFO ][o.e.n.Node ] [mysteel-node1] stopping ... [--14T10::,][INFO ][o.e.n.Node ] [mysteel-node1] stopped [--14T10::,][INFO ][o.e.n.Node ] [mysteel-node1] closing ... [--14T10::,][INFO ][o.e.n.Node ] [mysteel-node1] closed
解决方法参考 :http://www.cnblogs.com/sloveling/p/elasticsearch.html
切换到root用户
vi /etc/security/limits.conf
添加如下内容:
* soft nofile * hard nofile * soft nproc * hard nproc
vi /etc/security/limits.d/90-nproc.conf
修改如下内容: * soft nproc #修改为 * soft nproc
vi /etc/sysctl.conf
添加下面配置: vm.max_map_count=
并执行命令: sysctl -p
然后,重新启动elasticsearch,即可启动成功。