文章目录
之前文章中,我们搭建过单节点的es服务 《ElasticSearch系列(一)linux环境ElasticSearch+Kibana(6.8.2)下载安装启动步骤》,
本文,我们记录下linux环境中搭建es集群步骤,使用版本7.3.0 。
概念
下图是es集群的逻辑结构和物理结构示意图:
es在存储数据时,默认分为5个分片(绿色方框),每个分片有一个备份(白色方框),共10个单元,如左图所示;
但是为了高可用,es集群中的备份数据,不会和主数据存在同一个节点上,如右图所示;
一、集群搭建
我们搭建一个3个节点的es集群。在虚拟机中,使用3个端口,模拟3个集群节点。
1. 删除data目录
如果是新下载的es安装包,则不用此步骤。
因为本文使用的es之前是单节点运行的,已经产生了data数据,需要删除,保持节点纯净,否则影响集群运行。
2. 复制3份安装文件
cp -r es-cluster-01/ es-cluster=02
注意:
因为es不能使用root账户运行,所以安装文件不要像本文一样放在root目录中,可能会因为访问权限问题启动不了;建议非root用户的安装文件,放在/home目录下。
3. 修改elasticsearch.yml配置文件
我们搭建一个3个节点的集群,每个节点都需要修改以下文件内容。
## 集群名称,保证唯一
cluster.name: myes
## 节点名称,必须不一样
node.name: node-1
## 必须为本机ip地址
network.host: 192.168.17.101
## 服务端口号,在同一态机器下必须不一样
transport.tcp.port:9301
## 集群间端口号,在同一态机器下必须不一样
transport.tcp.port:9301
## 设置集群自动发现机器ip集合(老版本es)
discovery.zen.ping.unicast.hosts: ["192.168.17.101:9301","192.168.17.101:9302","192.168.17.101:9303"]
## 也可以使用这个(新版本es)
discovery.seed_hosts: ["192.168.17.101:9301","192.168.17.101:9302","192.168.17.101:9303"]
discovery.zen.ping.unicast.hosts是老版本的es配置文件中的,本文使用的es7.3.0,配置文件中是discovery.seed_hosts。
3.分别启动各个节点
nohup ./elasticsearch &
二、使用head连接测试
前面文章中,已经介绍了head插件的安装及使用《ElasticSearch系列(三)linux环境中安装配置head插件以及使用方法》
连接任何一个节点都可以,比如连接node-1:192.168.17.101:9201
连接后,我们创建一个5个分片的索引,如下:
其中,有黑色边框的是主数据,没有黑色边框的是副本;
可以发现,主数据和副本数据,都分布在不同的节点上,集群的健康值是绿色,表示数据存储合理。
相反,在之前搭建的单节点 es服务中,数据存储如下:
备份数据无处安放,健康值是黄色。
好了,本文就先到这里吧。