ES elasticsearch集群配置

本文详细介绍了如何在虚拟机环境中搭建Elasticsearch集群,包括服务器资源准备、软件安装配置及解决集群脑裂问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 环境准备

1.1 服务器资源

这里我使用的是虚拟机环境

服务器IP地址
node1192.168.51.4
node2192.168.51.5
node3192.168.51.6

1.2 安装和配置es

详情可参照博文: https://blog.youkuaiyun.com/qq_15769939/article/details/114249211

如果是虚拟机环境的话,可以直接部署一台,克隆两台。

如果是克隆的话,需要将自定义的es data目录的数据全部清空,按照我的教程来安装的话,需要清空

/usr/local/elasticsearch-7.4.2/data 目录下的所有文件

2 配置集群

2.1 node1

编辑配置文件

[root@localhost config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml

配置文件需修改的内容

# 配置集群名称,保证每个节点的名称相同,确保处于一个集群之内
cluster.name: auskat-es-cluster

# 节点名称,每个节点都不同
node.name: es-node1

# http端口 (默认端口)
http.port: 9200

# 主节点,作用主要是用来管理整个集群,负责创建或删除索引,管理其他非master节点(leader)
node.master: true

# 数据节点,用于对文档数据的增删改查
node.data: true

# 集群列表
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]


# 启动的时候使用一个master节点
cluster.initial_master_nodes: ["es-node1]

命令去除注释,查看配置文件信息

[root@localhost config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]

2.2 node2

编辑配置文件

[root@localhost config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml

配置文件需修改的内容

# 配置集群名称,保证每个节点的名称相同,确保处于一个集群之内
cluster.name: auskat-es-cluster

# 节点名称,每个节点都不同
node.name: es-node2

# http端口 (默认端口)
http.port: 9200

# 主节点,作用主要是用来管理整个集群,负责创建或删除索引,管理其他非master节点(leader)
node.master: true

# 数据节点,用于对文档数据的增删改查
node.data: true

# 集群列表
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]


# 启动的时候使用一个master节点
cluster.initial_master_nodes: ["es-node1]

命令去除注释,查看配置文件信息

[root@localhost config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]

2.3 node3

编辑配置文件

[root@localhost config]# vi /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml

配置文件需修改的内容

# 配置集群名称,保证每个节点的名称相同,确保处于一个集群之内
cluster.name: auskat-es-cluster

# 节点名称,每个节点都不同
node.name: es-node3

# http端口 (默认端口)
http.port: 9200

# 主节点,作用主要是用来管理整个集群,负责创建或删除索引,管理其他非master节点(leader)
node.master: true

# 数据节点,用于对文档数据的增删改查
node.data: true

# 集群列表
discovery.seed_hosts: ["192.168.51.4","192.168.51.5","192.168.51.6"]


# 启动的时候使用一个master节点
cluster.initial_master_nodes: ["es-node1]

命令去除注释,查看配置文件信息

[root@localhost config]# more /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml | grep ^[^#]

2.4 启动服务

分别启动三点节点的elasticsearch服务

[root@localhost config]# cd /usr/local/elasticsearch-7.4.2/bin
[root@localhost bin]# ./elasticsearch -d

3 集群脑裂问题

3.1 介绍

如果发生网络中断或者服务器宕机,那么集群就有可能被划分为两个部分,每个部分都有自己的master来管理,这个就是脑裂。

3.2 解决方案

master主节点要经过多个master节点共同选举后才能成为新的主节点。

ES7 以下解决方案

  • 半数以上的节点统一选举,节点方才可以成为新的master
  • discovery.zen.minimun_master_nodes = (N/2) + 1
  • N为集群中的master节点的数量,也就是 node.master=true 设置的服务器节点的总数

ES 7.X

在最新版的7.X版本中,minimun_master_nodes 这个参数已经被移除,换做有es自身去管理,这样就避免了脑裂的问题,选举速度会比较快。

4 相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小P聊技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值