elasticsearch系列六:索引重建

news2024/11/27 7:36:27

概述

       我们再起初创建索引的时候由于数据量、业务增长量都并不大,常常不需要搞那么多分片或者说某些字段的类型随着业务的变化,已经不太满足未来需求了,再或者由于集群上面索引分布不均匀导致节点直接容量差异较大等等这些情况,此时我们就需要重建索引。

案例

       信步云生产环境es集群由于2022年2月刚上线,诸多服务与下半年才逐渐接入导致不同月份的索引之间数据差异较大,导致节点之间容量差了10%以上。

       此时有人就有疑问了,为什么会这样呢?索引都是按照同一个模板创建的,大家的分片都是一样的,并且es集群各个节点之间的shard也是比较均衡的。

       问题就在这里,es是按照shard进行重平衡的,即便都是40个shard,但是由于每个shard之间的数据量不一致这样就导致了节点之间磁盘利用率的差距。

      我们就在es扩容申请时间窗口内顺便把这个问题修复了,怎么搞呢,这时候就需要重建索引了,因为索引的shard是不能动态调整的,你可以调整副本replica 数量,就好比数据库分库分表以后如果按照hash这种方式作为分片算法的话 是不能动态扩容的。

      es官方给我们提供了reindex api,它可以将一个索引复制到一个新的索引上,其底层采用的scroll api 其用法如下:

POST /_reindex{  "source": {    "index": ["log-2022-*"]  },  "dest": {    "index": "log-2022-new"  }}

       可以通过通配符的方式将多个索引复制到一个新的索引上,那么对于数据量较小的索引这样是没问题的。但是一旦索引数据量很大并且本身es又是低配版本的,此时就需要对reindex调优了,否则你就开始了漫长的等待过程。

       我们可以从这几个维度来调整 :

              第一 reindex既然是底层依赖scroll api 那么一定是有默认的批量值,通过官方介绍我们知道该值是1000,可以根据实际集群配置 将此值调大。

              第二 借助scroll的 sliced来提升性能,你可以理解它是多线程执行或多进程执行。sliced 可以手工配置也可以配置成auto,该值最好等于你索引的分片数,这样几个分片并行执行效率得到成倍提升。

POST /_reindex?slices=5&refresh{  "source": {    "index": ["log-2022-*"],    "size":6000  },  "dest": {    "index": "log-2022-new"  }}

  

         第三 将新的索引副本设置为0 等待重建完毕以后再调整副本数量,调大refresh_interval刷新时间,es写入数据是现写jvm内存的默认1秒flush一次

         重建完以后我们服务还是读取的旧索引啊,不能再调整程序去吧,此时索引名字变了怎么办呢?我们可以通过别名的方式,将新的索引增加多个别名,该别名可设置成之前的旧索引名字(当然此时旧索引已经删除)默认别名只有读取权限,我们需要通过is_write_index参数设置写入权限。​​​​​​​

POST /_aliases{  "actions": [    {      "add": {        "index": "test_index",        "alias": "my_alias",        "is_write_index":true      }    }  ]

       此时服务就可以平滑迁到了新的索引上了,集群之间的节点使用率也接近一致了。

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

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

相关文章

第十一章 Stream消息驱动

Stream消息驱动 gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信)、数据库集群、…

最优化方法Python计算:无约束优化应用——逻辑回归模型

S型函数 sigmoid ( x ) 1 1 e − x \text{sigmoid}(x)\frac{1}{1e^{-x}} sigmoid(x)1e−x1​将全体实数 R \text{R} R映射到 ( 0 , 1 ) (0,1) (0,1),称为逻辑函数。其图像为 该函数连续、有界、单调、可微,性质量好。拟合函数为 F ( w ; x ) sigmoi…

localsec.dll缺少怎么办?localsec.dll文件下载,一键修复

看到很多小伙伴都在问,自己的电脑,在启动游戏或某些软件的时候,Windows会弹出系统错误提示框,称一个名为“localsec.dll的文件丢失了,造成错误,可尝试重新安装程序,以解决问题”。 根据错误提示…

如何使用Redis实现抢红包功能

【内容摘要】 在这篇文章中,我们将探讨如何使用Redis来设计和实现一个抢红包的业务场景。从业务场景、需求分析、技术选型、代码实现,痛点问题等进行多维分析和思考。 【业务场景】 下面引入一个实际的使用案例,如微信群中常用的红包功能。…

计算机网络复习2

物理层 文章目录 物理层通讯基础奈奎斯特定理香农定理编码与调制交换传输介质(了解)物理层设备 通讯基础 数据信号码元信源信道信宿单工通道:只有一个方向半双工通道:不能同时发送和接收全双工通道 奈奎斯特定理 规定&#xff…

裕泰微YT8521SH PHY芯片在uboot下的代码适配(二)

裕泰微YT8521SH PHY芯片在uboot下的代码适配(一) 文章目录 代码搜索移植步骤具体代码备注 本文主要是介绍uboot下的适配代码来源和具体修改。 代码搜索 https://github.com/starfive-tech/u-boot/blob/JH7110_VisionFive2_devel/drivers/net/phy/motorc…

Linux中的gcc\g++使用

文章目录 gcc\g的使用预处理编译汇编链接函数库gcc选项 gcc\g的使用 这里我们需要知道gcc和g实际上是对应的c语言和c编译器,而其他的Java(半解释型),PHP,Python等语言实际上是解释型语言,因此我们经常能听…

Ps:混合颜色带 - 基础篇

混合颜色带 Blend If是“图层样式”对话框中的一个高级功能,允许根据下方图层或当前图层的色彩信息来混合图层,无需进行复杂的选区或蒙版操作。 混合颜色带是基于亮度(灰色)或颜色通道的特定范围来显示或隐藏图层的特定区域。 “当…

Android : 使用GestureDetector 进行手势识别—简单应用

示例图: GestureDetector 介绍: GestureDetector 是 Android 开发中用于识别和处理手势的一个类。它允许开发者检测用户在触摸屏上的各种手势,如滑动、长按、双击等。通过使用 GestureDetector,您可以轻松地为应用程序添加手势识…

GLTF 编辑器实现逼真3D动物毛发效果

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 要实现逼真的3D动物毛发效果,可以采用以下技术和方法&…

AI数字人克隆系统源代码克隆系统开发--本地源码部署

随着人工智能技术的不断发展,AI数字人克隆系统逐渐成为现实。这一系统通过克隆人的外貌和行为模式,可以创建具有自我认知、学习和情感的数字化人类。而为了更好地开发AI数字人克隆系统,本地源码部署是一项关键步骤。 在开始介绍本地源码部署…

低功耗蓝牙模块:促进智慧城市发展的关键技术

在科技快速发展的时代,智慧城市的概念正引领着城市管理的革新。为实现城市更高效、可持续和智能化的管理,低功耗蓝牙模块成为推动智慧城市发展的关键技术之一。本文将探讨低功耗蓝牙模块在智慧城市中的作用,以及其在城市基础设施、公共服务等…

6、LLaVA

简介 LLaVA官网 LLaVA使用Vicuna(LLaMA-2)作为LLM f ϕ ( ⋅ ) f_\phi() fϕ​(⋅),使用预训练的CLIP图像编码器 ViT-L/14 g ( X v ) g(X_v) g(Xv​)。 输入图像 X v X_v Xv​,首先获取feature Z v g ( X v ) Z_vg(X_v) Zv​g(Xv​)。考虑到最后一…

ROS-ID®活性氧/活性氮检测试剂盒

自由基和其他活性种在许多心理和病理生理过程中发挥着重要作用。自由基一旦在细胞内产生,就会破坏多种细胞成分,包括蛋白质、脂质和DNA。然而,在较低浓度下,自由基可以作为细胞信号传导中的第二信使。 Enzo Life Sciences的ROS-I…

svn外网打不开url地址怎么解决

在家或者出差在外经常会有连接到公司内部SVN服务器的需求, 但是 svn外网打不开url地址怎么解决?如何才能连接到公司内部SVN服务器?今天小编教你一招,在本地SVN服务的内网IP端口用快解析软件添加映射,一步就可以提供让公…

PC9095高性能可调限流OVP过压过流保护 软启动 抗浪涌 集成功率FET开关

特点 •输入电压范围: •PC9095A、PC9095KA:2.5伏~13.5伏 •PC9095B,PC9095KB:2.5伏~10伏 •PC9095C,PC9095KC:2.5伏~5.5伏 •28V绝对最大额定电压VOUT •带外部电阻器的可调限流器 •集成功率FET开关,53mΩRds&#xff08…

【Vue2+3入门到实战】(14)路由入门之单页应用程序、路由 、 VueRouter的基本使用 详细示例

目录 一、学习目标1.路由入门 二、单页应用程序介绍1.概念2.具体示例3.单页应用 VS 多页面应用4.总结 三、路由介绍1.思考2.路由的介绍3.总结 四、路由的基本使用1.目标2.作用3.说明4.官网5.VueRouter的使用(52)6.代码示例7.两个核心步骤8.总结 五、组件…

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一:没有添加 自动转化的配置,且domain中的属性名称和数据库的字段名称一致测试二:没有添加自动转化配置i,domain属性名userPassword和数据…

泽攸科技PECVD设备助力开发新型石墨烯生物传感器

近日,松山湖材料实验室许智团队与清华大学符汪洋合作在纳米领域头部期刊《Small》上发表了一项引人注目的研究成果,题为“Ultrasensitive biochemical sensing platform enabled by directly grown graphene on insulator”(硅晶圆上直接生长…

计算机网络——应用层与网络安全(六)

前言: 前几章我们已经对TCP/IP协议的下四层已经有了一个简单的认识与了解,下面让我们对它的最顶层,应用层进行一个简单的学习与认识,由于计算机网络多样的连接形式、不均匀的终端分布,以及网络的开放性和互联性等特征&…