0. 前提
- 三台服务器已正常安装ES,安装ES可参考这里
- 本教程ES安装目录为:/usr/local/elasticsearch-7.4.2/,三个节点一致
- 服务器与IP约定
节点一:192.168.1.184
节点二:192.168.1.185
节点三:192.168.1.186
1. 初始化数据
三个节点进行同样的操作
# 进入es的data目录
cd {elasticsearch}/data/
# 清理数据
rm nodes/ -rf
2. 配置 elasticsearch.yml
vim /usr/local/elasticsearch-7.4.2/config/elasticsearch.yml
找到
cluster.name:,设置集群名称es-cluster,三台节点保持一致
找到node.name,设置节点名称,三台节点分别为:es-node1、es-node2、es-node3
添加node.master: true,表示选举时,节点可能成为主节点,可以管理集群索引数据,三台节点保持一致
添加node.data: true,表示数据节点,可以管理文档数据,三台节点保持一致
找到discovery.seed_hosts:,设置为["192.168.1.184","192.168.1.185","192.168.1.186"],三台节点保持一致
找到cluster.initial_master_nodes:,设置初始化主节点为["es-node1"],三台节点保持一致
# 查看 elasticsearch.yml 配置
more elasticsearch.yml | grep ^[^#]
3. 分别启动三台节点
cd /usr/local/elasticsearch-7.4.2/bin/
./elasticsearch
4. 检查集群
分别访问三台节点查看集群信息:http://{host}:9200
5. 总结
以上我们完成了ES三节点集群搭建
补充1. 集群脑裂
老版本ES会出现的选举问题,7.x以前
问题出现:默认最小投票人数为1,所以当宕机的节点恢复时,可能直接成为主节点
导致原集群出现两个主节点,从而集群被分割解决办法:设置最小投票人数
最小投票人数:discovery.zen.minimum_master_nodes = N/2+1
注:N并不直接代表总节点数,而是配置为node.master: true的总节点数
补充2. 文档读写原理

