聊一聊Elasticsearch的索引分片的恢复机制

news2024/11/23 15:59:23

1、什么是索引分片的恢复?

所谓索引分片的恢复指的是在某些条件下,索引分片丢失,ES会把某索引的分片复制一份来得到该分片副本的过程。

2、触发分片恢复的场景有哪些?

  • 分片的分配

    当集群中节点的数量发生变化,或者配置了分片的过滤,使得某节点上的分片需要移动到另外一个节点上,就需要进行分片的分配。在分片分配的过程当中,当某个索引的分片缺失,则会通过分片恢复来创建对应的分片。

  • 增加索引的副本数

  • 从索引备份的快照中恢复数据

3、分片恢复的类型

  • 从本地分片复制而来,称为本地存储恢复(local store recovery)。
  • 从其他节点上分片复制而来,称为对等恢复(peer recovery)。
  • 从索引备份的快照文件中恢复的,称为快照恢复(snapshot recovery)。

4、分片恢复的过程

我们假设在一个有3个节点(节点1、节点2、节点3)的集群中创建一个索引(test_index),该索引有3个主分片(P1、P2、P3),每个主分片有1个副本分片(R1、R2、R3)。经过分片分配,每个节点上被分配2个分片,如下图:
在这里插入图片描述
让我们来看看此时的分片分配过程都发生了什么?首先在创建索引的时候,分别在3个节点上创建3个主分片,这三个主分片是在本地创建了3个空分片。然后会将这3个主节点复制到其他节点上产生副本分片(这3个副本分片是从其他节点上的分片复制而来,所以这里发生了3次对等恢复)。

我们再假设下如果节点3下线了会发生什么?节点3下线后,首先要将节点3上的主分片P0恢复,将P0复制到节点1上(我的理解是将节点1上的副本分片R0选举为新的P0主分片),如图:
在这里插入图片描述
然后将缺失的副本(R0、R2)恢复,即分别从节点1上的P0复制到节点2上形成R0,从节点2上的P2复制到节点1上形成R2,如图:
在这里插入图片描述

5、减少不必要的分片恢复

在生产环境中,通常会有很多节点、索引、分片,且索引分片的容量都比较大,若某个节点临时断网或者集群重启时未及时启动所有节点,就会使集群增加很多不必要的分片恢复。

我们可以通过以下两种方式来尽量避免这些不必要的分片恢复:

  1. 延时分片恢复:ES提供了一种索引级别的动态配置,可以通过来指定节点下线多久后开始分片恢复,默认是1分钟。
  2. 调整触发分片恢复的条件:通过ES的elasticsearch.yml文件中添加与网关相关的配置来设置分片恢复的触发条件。

6、参考文献

  • 《Elasticsearch数据搜索与分析实战》——王深湛

上一篇:《聊一聊Elasticsearch的索引的分片分配机制》
下一篇:《聊一聊Elasticsearch的索引数据搜索过程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

典型的 SOME/IP 多绑定用例总结

SOME/IP 部署中 AP SWC 不自行打开套接字连接的原因 在典型的 SOME/IP 网络协议部署场景里,AP SWC 不太可能自己打开套接字连接与远程服务通信,因为 SOME/IP 被设计为尽可能少用端口。这一需求源于低功耗 / 低资源的嵌入式 ECU,并行管理大量…

MySQL查询执行(八):Memory引擎

思考:两个group by语句都用了order bynull, 为什么使用内存临时表得到的语句结果里, 0这个值在最后一行; 而使用磁盘临时表得到的结果里, 0这个值在第一行? 答:答案对应第一小节:内…

canva 画图 UI 设计

起因, 目的: 来源: 客户需求。 目的: 用数据讲故事。 数据可以瞎编,图表一定要漂亮。 文件分享地址 读者可以在此文件的基础上,继续编辑。 效果图 过程: 我还是喜欢 canva. figma, 我用的时候,每每都想…

ES分词环境实战

文章目录 安装下载1.1 下载镜像1.2 单节点启动 防火墙设置异常处理【1】iptable链路中断 参考文档 参加完2024年11月软考,对ES的分词进行考查,前期有【 Docker 环境下安装部署 Elasticsearch 和 kibana】和【 Docker 环境下为 Elasticsearch 安装IK 分…

论文精读: PRB LiVSe2 Zigzag链序实验与理论计算

DOI: 10.1103/PhysRevB.108.094107 摘要节选 在具有轨道自由度的过渡金属化合物中,组成元素在低温下自组装形成分子的现象普遍存在。 在本研究中从实验和理论两方面讨论了钒二维三角形晶格层状LiVX2 (X O, S, Se)体系中出现的三…

修改一下达梦disql 提示符

经常用disql的有时某些信息希望提示一下,默认的只显示SQL> 为了方便使用,可以在 glogin.sql 中增加些内容。 vi $DM_HOME/bin/disql_conf/glogin.sql增加以下几行 set time on set lineshow offcol global_name new_value global_name SELECT ins…

【蓝桥杯备赛】123(前缀和的复杂应用)

5. 前缀和的复杂应用 5.1. 123(4 星) 5.1.1. 题目解析 这道题仍然是求一段区间的和,很容易能够想到前缀和找规律: 1------------------1 号块 1 2----------------2 号块 1 2 3--------------3 号块 1 2 3 4------------4 号…

机器学习—学习曲线

学习曲线是帮助理解学习算法如何工作的一种方法,作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线,多项式或二次函数,画出交叉验证错误Jcv,以及Jtrain训练错误,所以在这个曲线中,横轴将是Mtrai…

数据库基础(MySQL)

1. 数据库基础 1.1 什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质: 磁盘内存 为…

2024年11月HarmonyOS应用开发者基础认证全新题库

注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同 更新时间:2024年11月1日 这是基础认证题库,不是高级认证题库注意看清楚标…

静态时序分析--时序约束

目录 1.时钟约束1.1创建时钟1.2.生成时钟1.3虚拟时钟1.4 最小时钟脉宽 2.I/O延时约束2.1设置输入延时2.2设置输出延时 3.I/O环境建模约束3.1输入驱动建模3.2输出负载建模 4.时序例外4.1多周期路径设置(multicycle path)4.2伪路径设置(false_p…

51单片机基础05 实时时钟-思路及代码参考2、3

目录 一、思路二 1、原理图 2、代码 二、思路三 1、原理图 2、代码 一、思路二 所有设定功能相关的操作均在矩阵键盘进行实现&#xff0c;并在定时器中扫描、计数等 1、原理图 2、代码 #include <AT89X52.h> //调用51单片机的头文件 //------------------…

【C++篇】深入剖析C++ Vector底层源码及实现机制

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…

【代码pycharm】动手学深度学习v2-04 数据操作 + 数据预处理

数据操作 数据预处理 1.数据操作运行结果 2.数据预处理实现运行结果 第四课链接 1.数据操作 import torch # 张量的创建 x1 torch.arange(12) print(1.有12个元素的张量&#xff1a;\n,x1) print(2.张量的形状&#xff1a;\n,x1.shape) print(3.张量中元素的总数&#xff1…

鸿蒙HarmonyOS开发:一次开发,多端部署(工程级)三层工程架构

文章目录 一、工程创建1、先创建出最基本的项目工程。2、新建common、features、 products 目录 二、工程结构三、依赖关系1、oh-package.json52、配置ohpm包依赖 四、引用ohpm包中的代码1、定义共享资源2、在common模块index文件中导出3、在phone模块oh-package.json5文件中引…

NLP论文速读(EMNLP 2023)|工具增强的思维链推理

论文速读|ChatCoT: Tool-Augmented Chain-of-Thought Reasoning on Chat-based Large Language Models 论文信息&#xff1a; 简介&#xff1a; 本文背景是关于大型语言模型&#xff08;LLMs&#xff09;在复杂推理任务中的表现。尽管LLMs在多种评估基准测试中取得了优异的成绩…

uniapp vue3小程序报错Cannot read property ‘__route__‘ of undefined

在App.vue里有监听应用的生命周期 <script>// 只能在App.vue里监听应用的生命周期export default {onError: function(err) {console.log(AppOnError:, err); // 当 uni-app 报错时触发}} </script>在控制台打印里无意发现 Cannot read property ‘__route__‘ of …

第17章 子查询

一、介绍子查询 1.1 介绍 子查询指一个查询语句嵌套在另一个查询语句内部的查询&#xff0c;这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力&#xff0c;因为很多时候查询需要从结果集中获取数据&#xff0c;或者需要从同一个表中先计算得出一…

蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目

知识点&#xff1a; 1、应急响应-系统日志收集-项目工具 2、应急响应-系统日志查看-项目工具 3、应急响应-日志自动分析-项目工具 演示案例-蓝队技能-工具项目-自动日志采集&自动日志查看&自动日志分析 系统日志自动采集-观星应急工具(Windows系统日志) SglabIr_Co…

【西瓜书】线性判别分析-LDA

线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;简称LDA&#xff09;是一种经典的线性学习方法。在二分类问题上&#xff0c;因为最早由Fisher提出&#xff0c;也称“Fisher判别分析”。 严格说来&#xff0c;LDA 与 Fisher判别分析稍有不同&#xff0c;LDA…