版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gwd1154978352/article/details/82666891
基础环境
1.系统版本:Centos 7.4
2.jdk版本:java version "1.8.0_181"(该版本的elasticsearch必须使用jdk8及以上版本)
3.安装版本为ElasticSearch6.4.0(之后所有博客基本上都建立在此版本基础之上)
一.下载
下载地址:Elasticsearch 6.4.0 August 23, 2018
二.解压并安装
(1)将下载的文件放在服务器如下目录:/usr/elasticsearch/
(2)解压
tar -zxvf elasticsearch-6.4.0.tar.gz
(3)创建日志文件夹
# mkdir -p /data/logs/elasticsearch
# mkdir -p /data/elasticsearch/{data,work,plugins,scripts}
(4)创建一个非root用户
ElasticSearch有个比较特殊的地方就是不能用root权限来运行,所以我们这边需要新建一个用户以及赋予对应权限。
a.新建一个elsearch用户组
groupadd elsearch
b.新建用户elsearch,并让他加入elsearch组
useradd elsearch -g elsearch -p elsearch
c.赋予新用户对elasticsearch-6.4.0和/data/*的操作权限
chown -R elsearch:elsearch elasticsearch-6.4.0
chown -R elsearch:elsearch /data/*
d.切换用户
su elsearch
(5)修改配置文件(暂时可以不修改)
因为上面准备独立出日志等相关数据了,所以这边需要修改配置文件,添加如下配置:
network.host: 0.0.0.0 //监听访问地址为任意网段,也可以按自己的要求要设置对应的网段
path.data: /data/elasticsearch/data
path.logs: /data/logs/elasticsearch
#如果没有对应的插件,那么下面两个就不用配置,否则会报错
#path.plugins: /data/elasticsearch/plugins
#path.scripts: /data/elasticsearch/scripts
也可以通过如下配置来修改端口:
http.port: 9200
(6)启动任务
cd /usr/elasticsearch/elasticsearch-6.4.0/bin/
sh elasticsearch 或者用sh elasticsearch -d来后台启动
(7)验证是否运行
下面两者需同时满足
a. 输入如下脚本,有对应服务出现
ps -ef|grep elasticsearch
b.输入http//:ip:9200出现下图所示
{
"name" : "F6U_sFR",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "dTfp6ypnTQW-45WbwqSGTQ",
"version" : {
"number" : "6.4.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "595516e",
"build_date" : "2018-08-17T23:18:47.308994Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
三.关闭elasticsearch
需要对ES节点进行重新启动或正常关机的时候,有三种方法可以关闭ES:
1.在控制台中,使用CTRL+C组合键.
2.通过发送TERM信号终止服务器进程.
3.使用REST APIcurl -XPOST 'http://localhost:9200/_shutdown'
四.可能异常
1.
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.0.jar:6.4.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.0.jar:6.4.0]
... 6 more
解决方案:按照上面所述,新增用户,不要用root用户启动服务即可
2.
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:
a.切换到root用户,修改sysctl.conf配置文件
vi /etc/sysctl.conf
b.添加如下配置文件
vm.max_map_count=655360
c.执行如下脚本后,重启elasticsearch即可
sysctl -p