ElasticSearch集群搭建

安装准备:

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-1192.168.128.131CentOS7elasticsearch
Linux-2192.168.128.132CentOS7elasticsearch
Linux-3192.168.128.133CentOS7elasticsearch

安装包下载地址:

官网下载地址: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 ,连接到任意一个节点,就可以发现集群

至此,完美收官

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值