4.Elasticsearch学习之集群搭建

1. Elasticsearch集群的概念

1.1 引子

单机es可以用,没毛病,但是有一点我们需要去注意,就是高可用是需要关注的,一般我们可以把es搭建成集群,2台以上就能成为es集群了。集群可以实现海量数据存储的横向扩展。

1.2 分片机制

每个索引可以被分片,就相当于吃披萨的时候被切了好几块,然后分给不同的人吃

  • 索引my_doc只有一个主分片;

  • 索引shop有3个主分片;

  • 索引shop2有5个主分片。

  • 每个主分片都包含索引的数据,由于目前是单机,所以副本分片是没有的,这个时候集群健康值显示为黄色。

  • 副本分片是主分片的备份,主挂了,备份还是可以访问,这就需要用到集群了。

  • 同一个分片的主与副本是不会放在同一个服务器里的,因为一旦宕机,这个分片就没了

1.3 es集群搭建的准备工作

使用虚拟机克隆功能,把单个es的虚拟机克隆为3个,我们会搭建3节点的es集群。

2. 搭建Elasticsearch集群

2.1 前置操作

当克隆以后,es中的data目录,一定要清空,这里面包含了原先的索引库数据。

2.2 配置集群

修改 elasticsearch.yml 这个配置文件如下:

\# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了 
cluster.name: imooc-es-cluster 

\# 每一个节点的名称,必须不一样 
node.name: es-node1 

\# http端口(使用默认即可) 
http.port: 9200 

\# 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理其他非master节点(相当于企业老总)  每个集群都要配置
node.master: true 

\# 数据节点,用于对文档数据的增删改查  每个集群都要配置
node.data: true 

\# 集群列表 每个集群都要配置
discovery.seed_hosts: ["192.168.1.184", "192.168.1.185", "192.168.1.186"] 

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

最后可以通过如下命令查看配置文件的内容:

more elasticsearch.yml | grep ^[^#] 
2.3 分别启动3台es

切换到esuser后在启动,访问集群各个节点,查看信息:

  • http://192.168.1.184:9200/

  • http://192.168.1.185:9200/

  • http://192.168.1.186:9200/

注意:如果其中一台服务节点挂掉后,会自动重新选举主节点

3. Elasticsearch集群脑裂现象探讨

3.1 什么是脑裂

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

3.2 脑裂解决方案

master主节点要经过多个master节点共同选举后才能成为新的主节点。就跟班级里选班长一样,并不是你1个人能决定的,需要班里半数以上的人决定。

解决实现原理:半数以上的节点同意选举,节点方可成为新的master。

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

  • N为集群的中master节点的数量,也就是那些 node.master=true 设置的那些服务器节点总数。

3.3 ES 7.X

在最新版7.x中, minimum_master_node 这个参数已经被移除了,这一块内容完全由es自身去管理,这样就避免了脑裂的问题,选举也会非常快。

3.4 文档的读写原理
  • 文档的写原理

elasticsearch31

  • 文档读原理

elasticsearch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值