Elasticsearch核心技术与实战学习笔记 38 | 分片与集群的故障转移

一 序

  本文属于极客时间Elasticsearch核心技术与实战学习笔记系列。

二 Primary Shard - 提升系统存储容量

分片是 ES 分布式储存的基石

  • 主分片 / 副本分片

通过主分片,将数据分布在所有节点上

  • Primary Shard , 可以将一份索引的数据,分散在多个 Data Node 上,实现储存的水平扩展
  • 主分片(Primary Shard)数在索引创建时候指定,后续默认不能修改,如要修改,需重建索引

2.1  Replica Shard - 提高数据可用性

数据可用性

  • 通过引入副本分片(Replica Shard)提高数据的可用性。一旦主分片丢失,副本分片可以在 Promote 成主分片。副本分片数可以动态调整的。每个节点上都有完备的数据。如果不设置副本分片,一旦出现节点硬件故障,就有可能造成数据丢失。

提高系统的读取性能

  • 副本分片由主分片(Primary Shard)同步。通过支持增加 Replica 个数,一定程度可以提高读取的吞吐量

2.2 分片数的设置

  如何规划一个索引的主分片数和副本分片数

  • 主分片数过小:例如创建一个 1 个 Primary Shard 的 index

         如果该索引增长很快,集群无法通过增加节点实现对这个索引的数据扩展

  • 主分片数设置过大:导致单个 Shard 容量很小,引发一个节点上有过多分片,影响性能
  • 副本分片设置过多,会降低集群整体的写入性能

3 demo 单节点集群

因为副本分片必须和主分片分布在不同的节点上,这样才能保证单台机器故障的时候数据不会真正的丢失。

3.1 增加一个数据节点

  • 集群状态转为绿色
  • 集群具备故障转移能力

3.2 再增加一个节点

  •   Master 节点会决定分片分配到哪个节点
  • 通过增加节点数,提高集群的计算能力

 

四 故障转移

  •  3 个节点共同组成。包含 1 个索引,索引设置了 3 个 Primary Shard 和 1 个 Replica
  • 节点 1 是 Master 节点,节点意外出现故障(主分片0也丢失)。集群重新选举 Master 节点(图上是node2)
  • Node3 上的 R0 (之前主分片P0的副本)提升成 P0 ,集群变黄
  • node2把r0 r1分别分配到node2,node3上(这快没理解)R0 R1 分配,集群变绿

4.1集群健康状态

  • Green : 健康状态,所有的主分片和副本分片都可用
  • Yellow: 亚健康,所有的主分片可用,部分副本分片不可用
  • Red:不健康状态,部分主分片不可用

 补充下知识点:

分片是Elasticsearch中的最小工作单元,本质上是一个Lucene Index。在Lucene中,单个倒排索引文件被称为Segment,Segment是自包含且不可变更的,多个Segment汇总在一起称为Lucene Index

当有新文档生成时,会生成新的Segment,查询时会同时查询所有Segment,并且对结果汇总,Lucene中有一个文件用来记录所有Segments信息,叫做Commit Point,删除的文档信息,保存在.del文件中。
1:选主的过程中可能存在问题的场景?
选主的过程应该很短,这个期间,如果有创建index或者分片reallocation有可能会出错。
2:故障转移期间可能会出现问题的场景?
故障转移期间,如果只是黄色变绿,应该不影响读写,因为副本会提升为主分片。集群变红,代表有主分片丢失,这个时候会影响读写。
3: 故障转移,数据重新分配,消耗性能的避免方式?
例如一个主分片不可用了。只要设置了副本分片,其中一个副本分片立即会将自己提升为主分片。同时会将自己的数据分配到一个新的replica上,有时候,我们只是重启一台机器,可以让这个reallocation的动作延迟一段时间再做,从而避免无谓的数据拷贝。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视频资源太大,这里提供百度云链接: 资源包括项目源码和所需的数据: 01-1 _课程导学~1.mp4 01-2 说明和建议~1.mp4 02-1 -术语介绍 .mp4 02-2 Document介绍.mp4 02-3 index介绍 .mp4 02-4 -restapi介绍 .mp4 02-5 -index_api .mp4 02-6 -document_api.mp4 03-01 -书的目录与索引.mp4 03-02 -正排与倒排索引简介.mp4 03-03 -倒排索引详解.mp4 03-04 -分词介绍.mp4 03-05 -analyze_api .mp4 03-06 -自带分词器.mp4 03-07 -中文分词.mp4 03-08 -自定义分词之CharacterFilter .mp4 03-09 自定义分词之Tokenizer .mp4 03-10 -自定义分词之 TokenFilter .mp4 03-11 -自定义分词.mp4 03-12 -分词使用说明 .mp4 03-13 -官方文档说明.mp4 04-01 -mapping简介.avi 04-02 -自定义 mapping .avi 04-03 -mapping演示.avi 04-04 -copy_to参数说明.avi 04-05 -index参数说明.avi 04-06 -index_options参数说明.avi 04-07 -mapping文档说明.avi 04-08 -数据类型.avi 04-09 -dynamic-mapping简介.avi 04-10 -dynamic日期与数字识别.avi 04-11 -dynamic-template简介.avi 04-12 -自定义mapping的建议.avi 04-13 -索引模板.mp4.avi 05-01 -SearchAPI概览.avi 05-02 -URISearch详解与演示.avi 05-03 -QueryDSL简介.avi 05-04 -字段类查询简介及match-query.avi 05-05 -相关性算分.mp4.avi 05-06 -match-phrase-query_音频.mp4.avi 05-07 -query-string-query.avi 05-08 -simple-query-string-query.avi 05-09 -term-terms-query.avi 05-10 -range-query.avi 05-11 -复合查询介绍及ConstantScore.avi 05-12 -bool-query.avi 05-13 -count-and-source-filtering.avi 06-01 -分布式介绍及cerebro.avi 06-02 -构建集群.avi 06-03 -副本与分片.avi 06-04 -两个问题.avi 06-05 -集群状态.avi 06-06 -故障转移.mp4.avi 06-07 -文档分布式存储.avi 06-08 -脑裂问题.avi 06-09 -shard详解.avi 07-1 -Query-Then-Fetch.avi 07-2 -相关性算分.avi 07-3 -sorting-doc-values-fielddata.avi 07-4 -分页与遍历-fromsize.avi 07-5 分页与遍历.avi 07-6 分页与遍历-search_after.avi 07-7 文档说明.mp4.avi 08-1 -聚合分析简介.avi 08-2 -metric聚合分析.avi 08-3 -bucket聚合分析.avi 08-4 -bucket和metric聚合分析.avi 08-5 -pipeline聚合分析.avi 08-6 -作用范围.avi 08-7 -排序.avi 08-8 -原理与精准度问题.avi 08-9 -文档说明.avi 09-1 -数据建模简介.avi 09-2 -ES数据建模配置相关介绍.avi 09-3 -ES数据建模实例.mp4.avi 09-4 -Nested_Object.avi 09-5 -Parent_Child.avi 09-6 -nested_vs_parent_child.avi 09-7 -reindex.avi 09-8 其他建议.avi 10-1 生产环境部署建议.avi 10-2 写性能优化.avi 10-3 读性能优化.avi 10-4 如何设定shard数.avi 10-5 xpack监控功能介绍.avi 11-1 入门及架构简介.avi 11-2 -Life_of_an_Event.avi 11-3 -queue简介.avi 11-4 -线程简介.avi 11-5 配置简介.avi 11-6 多实例运行.avi 11-7 pipeline配置简介.avi 12-01 input插件详解及glob讲解.avi 12-02 -codec插件详解.avi 12-03 filter插件简介及date插件讲解.avi 12-04 filter插件之grok简介(上).avi 12-05 filter插件之grok简介(下).avi 12-06 filter插件之dissect讲解.avi 12-07 filter插件之mutate 讲解.avi 12-08 filter插件之 json讲解.avi 12-09 filter 插件之geoip和ruby 讲解.avi 12-10 output插件简介.avi 12-11 文档说明.avi 123.bat 13-1 -Logstash实战建议.avi 13-2 -实战之apacheLogs(上).avi 13-3 实战之apacheLogs(下).avi 13-4 实战之csv.avi 13-5 监控运维建议.avi 14-1 beats简介.avi 14-2 Filebeat_Demo.avi 14-3 Filebeat 简介及流程介绍.avi 14-4 Filebeat常见架构及ingest_node介绍.avi 14-5 Filebeat_Module简介.avi 15-1 -简介.avi 15-2 -Module简介.avi 15-3 -实战.mp4.avi 16-1 1-简介(1).avi 16-1 1-简介(1).avi.baiduyun.downloading 16-1 1-简介.avi 16-2 2-实战.avi 17-1 1-Heartbeat.avi 17-2 2-Community_beats.avi 18-1 -配置与线上部署建议.avi 18-2 -Index_Pattern_Objects_Settings使用.avi 19-1 -导入数据.avi 19-2 -Discover实战.avi 20-1 -可视化简介.avi 20-2 -Basic_Charts_介绍.avi 20-3 -Basic_Charts_其他说明.avi 20-4 -Data图表介绍.avi 20-5 -Map图表介绍.avi 20-6 -Timelion介绍.avi 20-7 -VisualBuilder介绍.avi 20-8 -other图表介绍.avi 20-9 -Dashboard介绍.avi 21-1 -项目介绍.avi 21-2 项目实战.avi 22-1 介绍和数据导入.avi 22-2 -实战.avi 23-1 项目简介.avi 23-2 实战(上).avi 23-3 实战(下).avi 24-1 课程总结.avi codes.zip project.zip 文件树.txt

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值