安装准备:
JDK必须
# 先检查JDK环境
[root@Linux-1 elastic]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
机器准备
主机 | IP | 系统 | 服务 |
---|---|---|---|
Linux-1 | 192.168.128.131 | CentOS7 | elasticsearch |
Linux-2 | 192.168.128.132 | CentOS7 | elasticsearch |
Linux-3 | 192.168.128.133 | CentOS7 | elasticsearch |
安装包下载地址:
官网下载地址:https://artifacts.elastic.co/downloads/elasticsearch/
命令下载:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
下载完成后
#进入安装文件的配置中心(此处我的elasticsearch解压后的包已将名字更改为elastic)
[root@Linux-1 elastic]# ll
总用量 460
drwxr-xr-x. 3 elastic elastic 4096 9月 25 09:35 bin
drwxr-xr-x. 2 elastic elastic 178 9月 27 15:23 config
drwxrwxr-x. 3 elastic elastic 19 9月 27 15:03 data
drwxr-xr-x. 3 elastic elastic 4096 3月 21 2019 lib
-rw-r--r--. 1 elastic elastic 13675 3月 21 2019 LICENSE.txt
drwxr-xr-x. 2 elastic elastic 249 9月 27 14:55 logs
drwxr-xr-x. 31 elastic elastic 4096 3月 21 2019 modules
-rw-r--r--. 1 elastic elastic 427502 3月 21 2019 NOTICE.txt
drwxr-xr-x. 2 elastic elastic 6 3月 21 2019 plugins
-rw-r--r--. 1 elastic elastic 8519 3月 21 2019 README.textile
[root@Linux-1 elastic]# vim config/elasticsearch.yml
修改如下两处配置:
启动:
这儿启动报错:elasticsearch 不能用root用户启动。好吧我们新建一个用户
#添加用户elastic
[root@Linux-1 elastic]# useradd elastic
#为elastic用户设置密码
[root@Linux-1 elastic]# password elastic
注意新建完用户后给新用户elastic es的权限,因为我们一会用elastic用户启动es。否则会报错:一些文件没有访问权限
#将elasticsearch的整个文件给到elastic用户(我的es整个文件名字已更改为elastic)
[root@Linux-1 opt]# chown -R elastic:elastic elastic
接下来我们切换elastic用户启动es
[root@Linux-1 elastic]# su elastic
[elastic@Linux-1 elastic]$ ./bin/elasticsearch
这时发现启动又报错了
这里报的错很明显了
#按日志提示修改系统配置
[elastic@Linux-1 elastic]$ su root
密码:
[root@Linux-1 elastic]# vim /etc/security/limits.conf
#添加如下配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重新启动
[root@Linux-1 elastic]# su elastic
[elastic@Linux-1 elastic]$ ./bin/elasticsearch
报错继续修改
[elastic@Linux-1 elastic]$ su root
密码:
[root@Linux-1 elastic]# sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
[root@Linux-1 elastic]#
继续启动
[root@Linux-1 elastic]# su elastic
[elastic@Linux-1 elastic]$ ./bin/elasticsearch
OK 完美启动成功
验证:
#命令查看9200端口的启动情况
[root@Linux-1 ~]# netstat -tunlp|grep 9200
tcp6 0 0 192.168.128.132:9200 :::* LISTEN 6332/java
[root@Linux-1 ~]#
#Linux-2主机验证Linux-1主机的es效果
[root@Linux-2 ~]# curl -i http://192.168.128.131:9200/
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 493
{
"name" : "-OcM2sm",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Pl0A5S7hQPGYzUcIyH7SPw",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
[root@Linux-2 ~]#
浏览器验证:
当三台机器都安装完成后,这时我们来设置集群相关配置
#你的集群名称,所有节点名称必须一样
cluster.name: es
#当前节点名,根据不同节点填写不同名称,不能重复
node.name: node01
##数据存放路径
path.data: /opt/elastic/data
##日志存放路径
path.logs: /opt/elastic/logs
##ES服务器绑定IP地址(在单机时我们配过可忽略)
network.host: 192.168.128.131
##ES端口(在单机时我们配过可忽略)
http.port: 9200
#es节点地址
discovery.zen.ping.unicast.hosts: ["192.168.128.131","192.168.128.132","192.168.128.133"]
#以下三个配置的意思是:每隔30秒向主节点发送一次心跳监测,120秒之内如果没有回应,则算超时
#连续超时6次,则认为主节点已经挂了
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 30s
#ping节点的响应时间
client.transport.ping_timeout : 60s
#俗称的脑裂问题,参数意义是一个节点需要看到几个具有被竞选为主节点资格的节点正常工作时,
#它才能在集群中正常操作。官方推荐为(N/2)+1
discovery.zen.minimum_master_nodes: 2
##开启跨域访问
http.cors.enabled: true
##允许任何访问
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
三台机器都配置好后,再进行系统的设置
#修改limits.conf配置
vim /etc/security/limits.conf
#添加如下(之前加过的可以忽略)
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
#修改sysctl.conf配置(修改过的可以忽略)
vim /etc/sysctl.conf
vm.max_map_count = 655360
注意防火墙的端口开放问题(此处不做介绍)
至此,es的集群配置与系统配置完成,需要重启机器
机器重启好后,就可以启动es了,在bin目录,./elasticsearch ,如果想在后台启动 加个参数 -d 记得别用root用户启动!!!
es集群至少要启动两个节点。不然会一直报错
在谷歌浏览器的插件商店下载个 elasticsearch head ,连接到任意一个节点,就可以发现集群
至此,完美收官