2021-02-26 10:58

Ubuntu Linux系统下,如何进行ElasticSearch集群搭建

王姐姐

运维

(833)

(0)

收藏

首先是集群的结构图:

1.png

主分片和副本分片不能同时存在于同一台服务器,比如主1和副1不能同时存在于同一台服务器,不然宕机之后这里的数据都没有了。


搭建

我这里准备了3台elasticsearch服务器

2.png

里面的系统环境我都已经搭建完毕了,用的都是elasticsearch7.6.2。

安装包到ES的官网下载就可以了,然后上传到服务器,解压就可以了。路径自定吧。

ES官网.

首先我们先来配置ES的环境数据,来到ES的config文件夹下,有一个elasticsearch.yml的配置文件,我们打开这个进行配置

3.png


首先是cluster.name和node.name,一个就是es的名称,和节点名称,可以按照自己的来

5.png

往下就是配置数据地址和日志存储地址

path.data: 配置ES的存储数据的地址

path.logs: 配置ES的存储日志的地址

6.png


往下就是ES的启动地址,端口,跨越和主从配置

network.host: 启动地址,这里改成0.0.0.0就是允许远程访问

http.port: ES启动的端口,这里我就默认9200,

http.cors.enabled: true,http.cors.allow-origin: “*”: 这两个就是跨域处理

node.master: true: 这两个就是用来配置ES集群的,只有node.master为true,才能竞选投票成为主节点,并且拥有选举权

node.data: true: 表示节点是否存储数据。


7.png


以上配置就可以在另外两台服务器进行照样的配置,注意:node.name的名称要区别开哦,不要一样。


当3台服务器都配置完毕之后,在此打开 elasticsearch.yml,继续往下,来到这里:

配置ES集群的地址

discovery.seed_hosts: 集群的各服务器地址

cluster.initial_master_nodes: 对应上面的node.name名称

8.png

可以通过下面这个命令看到配置文件中所有的配置,grep的主要就是过滤文件中的#,这样看配置文件中有做了哪些配置就很清晰了

more elasticsearch.yml | grep ^[^#]

9.png

以上配置完毕之后就可以来启动3台ES了,来到ES文件下的bin目录下

通过:./elasticsearch -d来后台运行ES,-d去掉就是直接在界面启动,可以在界面看到输出的日志

10.png

如何查看启动完毕呢?在浏览器输入地址:你ES的地址+端口,如果成功会返回你ES的信息

11.png


方便操作ES肯定是有可视化操作界面的,chorm有扩展程序,叫做:ElasticSearch Head,这个就自己科学上网搞定吧!

12.png


从可视化见面中可以看到,我们的集群是搭建成功了

13.png


这时候我们可以来新建一个索引

14.png


可以看到主分区和副分区是不会再同一个节点上的,这是因为如果主副分区都在同一个节点上,这台服务器宕机之后,存在这个分区的数据就都丢失了,这就就很严重了,所以主分区宕机之后,副分区还是可以正常运作!

15.png


宕机重新选择主节点

如果有一台出现宕机,那么会进行重新选择主节点,重新分配分片区,宕机的那台服务器重新连接上之后,也不会再次成为主节点,而是等待目前的这台主节点宕机之后再次重新选举主节点。


这时候我把第一台服务器的ES结束进程再来看分区的分配。

这时候可以看到node2当选了主节点,并且5个分区也重新分配了

16.png

选择我们把第一台主机重新启动ES,再来看一下分区的情况

这时候可以看到node2仍然是主节点,node1不会再成为主节点,并且分区会进行重新分配。

17.png


集群脑裂

在ES的7.X之前会有这个问题

当有3台服务器A(Master),B(Slave),C(Slave),当A挂掉之后,那么会重新选举一台Master,默认是最小投票数=1,也就是有一台主机的票数是1那么就可以成为Master。

那么如果A挂掉重新恢复之后,那么他也是可以投票的,如果给自己投票,那么会造成有A,B两个Master,划分为2片,变成了2个集群,造成数据的不完整,这就是脑裂。


解决

在elasticsearch.yml中添加一句配置:

discovery.zen.minimum_master_nodes = (N/2)+ 1

N的值是 能够成为Master的主机数,也就是有 node.master: true这个配置的主机数量

————————————————

版权声明:本文为CSDN博主「Csea_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/qq_38494341/article/details/105614639


0条评论

点击登录参与评论