es版本:6.2.4
下载zip包之后上传服务器,unzip解压缩安装包之后,修改配置文件
cluster.name: my-application
node.name: node-1
path.data: /home/hadoop/install/elasticsearch-6.2.4/data
path.logs: /home/hadoop/install/elasticsearch-6.2.4/logs
network.host: master.hadoop
http.port: 9200
最开始是root启动,报错
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:35)
Refer to the log for complete error details.
新建用户es,但是启动还是报错,一直报错没有权限,原来是,我的es安装在/home/hadoop/install/下,es用户并没有在hadoop用户组中,所以所有的包和conf目录都没有权限,虽然我使用root强制刷权限给es,但是仍然没有hadoop目录的权限,所以就报错,后边就将es目录授权给hadoop用户,使用hadoop用户启动,报错: vm.max_map_count太小:
ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:使用root用户修改/etc/sysctl.conf,添加下面代码
vm.max_map_count=262114
修改完之后需要重启linux,再次切换hadoop用户,启动es,仍然报错:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决:切换root用户,修改/etc/security/limits.conf,添加下面代码
*** hard nofile 65536 *** soft nofile 65536 *** 是启动ES的用户
切换hadoop用户,再次启动。OK,终于排光所有的雷,启动成功。
访问http://master.hadoop:9200。访问成功。