Elasticsearch 索引的分片和副本是什么意思,如何扩展分片

文章目录

  • 前言
    • Elasticsearch 索引的分片和副本是什么意思,如何扩展分片
      • 示例:
        • 1. 设置 5个分片,每个分片一个副本的命令
        • 2. 将5个分片扩展到10个分片

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


Elasticsearch 索引的分片和副本是什么意思,如何扩展分片

当你在 Elasticsearch 中创建一个索引时,你可以指定该索引被分成多个分片(Shard)。分片是索引的基本构建块,每个分片都是一个独立的 Lucene 索引,它包含了一部分你的数据。分片允许你水平扩展你的索引以处理更大的数据量。

副本(Replica)是分片的备份。副本的存在提供了数据的冗余,增加了系统的可用性和容错性。当主分片不可用时,副本可以被提升为主分片,从而保证数据的可用性。

例如,如果你有一个索引,其中包含了 5 个分片和每个分片有 1 个副本,那么你实际上有 5 个主分片和 5 个副本,共计 10 个分片。这意味着你的索引数据会被分成 10 份,每份数据被存储在一个主分片和一个副本中。
分片和副本的数量需要根据你的数据量、负载和可用性要求来进行合理的设置。通常情况下,可以通过增加分片数量来扩展索引的容量和吞吐量,通过增加副本数量来提高系统的可用性和容错性。然而,分片和副本的增加也会带来一些额外的开销,因此需要在设计时进行权衡和优化。

示例:

假设你正在构建一个电子商务网站的搜索引擎,用于存储商品信息。你创建了一个名为 “products” 的索引来存储所有商品数据。
你决定将 “products” 索引分成 5 个主分片和每个主分片创建一个副本,以确保数据的高可用性和容错性。这样,你的索引会有 5 个主分片和 5 个副本,共计 10 个分片。

现在假设你的网站经历了快速增长,商品数量激增,导致原先的 5 个主分片无法满足查询需求和索引更新的吞吐量。为了处理更大的数据量和更高的负载,你决定增加主分片数量。

你可以通过修改索引的设置来增加主分片的数量,比如将主分片数量增加到 10。这样,每个原先的主分片将被拆分成两个新的主分片,并且每个主分片仍保持一个副本。最终,你的索引会有 10 个主分片和 10 个副本,共计 20 个分片。
通过增加主分片数量,你可以水平扩展你的索引以处理更大的数据量和更高的负载,同时保持系统的可用性和容错性。

1. 设置 5个分片,每个分片一个副本的命令
PUT /my_index
{"settings": {"number_of_shards": 5,"number_of_replicas": 1}
}

在这里插入图片描述
下面是我们刚刚建的索引:
在这里插入图片描述
设置 5个分片,每个分片一个副本。

2. 将5个分片扩展到10个分片

测试之前插入一条数据:

PUT /my_index/_doc/yzy100001
{"title": "jstat命令查看jvm的GC信息","content": "jstat命令查看jvm的GC信息999999999999","author": "糖炒栗子","publish_date": "2024-04-23","tags": ["Elasticsearch", "Search", "Tutorial"]
}

在这里插入图片描述
在这里插入图片描述
1、创建新索引:修改主分片数量后,需要重新创建索引,并指定新的主分片数量。
创建新索引:

PUT /my_index_new
{"settings": {"number_of_shards": 10,  // 将主分片数量增加到 10"number_of_replicas": 1  // 根据需要设置副本数量}
}

通过上面的请求创建一个新的索引 “my_index_new”,并将主分片数量设置为 10,副本数量根据需要进行设置。
在这里插入图片描述
在这里插入图片描述
2、重新索引数据:重新创建索引后,你需要重新索引你的数据,以便数据能够被正确地分配到新的主分片中。

POST /_reindex
{"source": {"index": "my_index"},"dest": {"index": "my_index_new"}
}

在这里插入图片描述
通过上面的请求重新索引数据,将原先索引 “my_index” 中的数据重新索引到新创建的索引 “my_index_new” 中。

完成以上步骤后,你的索引 “my_index” 的主分片数量就从 5 增加到了 10,并且数据已经被正确地重新索引到了新的索引中。

在新索引中查询我们刚刚插入一条文档,看看数据是否转移过去

GET /blog_new/_doc/yzy100001

在这里插入图片描述
之前的哪个索引就可以干掉了

DELETE /my_index

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

TCP相关问题总结

文章目录 TCP连接建立过程1. TCP三次握手2. TCP四次挥手3. TCP为什么是三次握手4. TCP为什么是四次挥手 TCP流量控制TCP拥塞控制1. 为什么需要拥塞控制2. 控制手段 TCP连接建立过程中出现丢包 TCP连接建立过程 1. TCP三次握手 首先client端发出连接请求,并且请求同…

Qt下使用7Z源码进行压缩和解压缩

7Z压缩是一款常用的压缩算法和工具,本文主要介绍一款在qt环境下进行编译的压缩方法。 本人测试是可以正常跑通的,具体代码部分请下载:下载链接,提取码:ev9t 7z源码网址:7-Zip 7z简介: 7z 是…

Python多线程并不是真的并行执行

Python多线程虽然能够利用多个CPU核执行计算,但并不能真正执行多线程并行计算。因为在Python中,有一个全局解释锁(GlobalInterpreter Lock,GIL),该锁的存在使得在同一个时间只有一个线程执行任务&#xff0…

rocketmq dashboard控制台中topic状态无法展示

现象 在使用rocketmq控制台查看topic状态和订阅状态时,出现错误和没有信息的情况。 原因 rocketmq控制台版本问题,最新版本为1.0.1,支持rocketmq5版本,如果使用rocketmq4版本的服务无法兼容对应的数据。同理1.0.0版本也无法兼容ro…

Spark AQE 导致的 Driver OOM问题

背景 最近在做Spark 3.1 升级 Spark 3.5的过程中,遇到了一批SQL在运行的过程中 Driver OOM的情况,排查到是AQE开启导致的问题,再次分析记录一下,顺便了解一下Spark中指标的事件处理情况 结论 SQLAppStatusListener 类在内存中存…

Hadoop之路---伪分布式环境搭建

hadoop更适合在liunx环境下运行,会节省后期很多麻烦,而用虚拟器就太占主机内存了,因此后面我们将把hadoop安装到wsl后进行学习,后续学习的环境是Ubuntu-16.04 (windows上如何安装wsl) 千万强调,创建完hado…

读天才与算法:人脑与AI的数学思维笔记14_人脑的极限

1. 数学研究 1.1. 数学研究变得更为艰难了 1.1.1. 学科分支越发密集,问题越发复杂 1.1.2. 攻读博士学位的3年时间,只够去理解导师所给题目的含义 1.1.3. 随后,再花费数年时间去研究、探索,运气不错的话,会得到一些…

CVE-2022-2602:unix_gc 错误释放 io_uring 注册的文件从而导致的 file UAF

前言 复现该漏洞只是为了学习相关知识,在这里仅仅做简单记录下 exp,关于漏洞的详细内容请参考其他文章,最后在 v5.18.19 内核版本上复现成功,v6.0.2 复现失败 漏洞利用 diff --git a/include/linux/skbuff.h b/include/linux/s…

10GMAC层设计系列-(1)10G Ethernet PCS/PMA

一、引言 对于10G以太网MAC层的实现,Xilinx提供了 3种IP核,分别是 10G Ethernet MAC、10G Ethernet PCS/PMA、10G Ethernet Subsystem。 10G Ethernet MAC只包含MAC层,外部需要提供一个PHY芯片进行数据对齐,10G Ethernet MAC与P…

软考 系统架构设计师系列知识点之软件可靠性基础知识(7)

接前一篇文章:软考 系统架构设计师系列知识点之软件可靠性基础知识(6) 所属章节: 第9章. 软件可靠性基础知识 第1节 软件可靠性基本概念 9.1.5 广义的可靠性测试和狭义的可靠性测试 广义软件可靠性测试 广义的软件可靠性测试是…

sql注入工具-​sqlmap

介绍: sqlmap是一款开源的自动化SQL注入工具,用于自动化检测和利用Web应用程序中的SQL注入漏洞。它具有强大的参数化查询和自定义注入脚本的功能,可以通过检测和利用SQL注入漏洞来获取数据库的敏感信息,如用户名、密码和其他重要…

C++ | Leetcode C++题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; class Solution { public:string getPermutation(int n, int k) {vector<int> factorial(n);factorial[0] 1;for (int i 1; i < n; i) {factorial[i] factorial[i - 1] * i;}--k;string ans;vector<int> valid(n 1, 1);…

gateway全局token过滤器

添加gateway依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>创建一个tokenFilter 实现全局过滤器GlobalFilter,并且实现fitler方法 Value("${…

WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析

在浏览器中渲染大尺寸 3D 模型&#xff1a;Speckle 处理空间抖动的方法 WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析 注: 相机空间和视图空间 概念等效混用 1、实现的关键代码 const material new THREE.RawShaderMaterial({uniforms: {cameraPostion: {…

【全开源】Java上门老人护理老人上门服务类型系统小程序APP源码

功能&#xff1a; 服务分类与选择&#xff1a;系统提供详细的老人护理服务分类&#xff0c;包括日常照护、康复训练、医疗护理等&#xff0c;用户可以根据老人的需求选择合适的服务项目。预约与订单管理&#xff1a;用户可以通过系统预约护理服务&#xff0c;并查看订单详情&a…

final原理

文章目录 1. 设置 final 变量的原理2. 获取 final 变量的原理 1. 设置 final 变量的原理 理解了 volatile 原理&#xff0c;再对比 final 的实现就比较简单了 public class TestFinal {final int a 20; }字节码 0: aload_0 1: invokespecial #1 // Method java/lang/Object…

Python进阶之-traceback详解

✨前言&#xff1a; 在日常开发中&#xff0c;我们会做一些基本的异常处理&#xff0c;但是有时候只能打印我们处理的结果或者将异常打印出来&#xff0c;不能直观的知道在哪个文件中的哪一行出错。在Python中&#xff0c;traceback是一个用来跟踪异常错误信息的标准库&#x…

Docker搭建LNMP+Wordpress

一.项目模拟 1.项目环境 公司在实际的生产环境中&#xff0c;需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。 安装包下载&#xff1a; wget http://101.34.22.188/lnmp_wordpress/mysql-boost-5.7…

记录k8s以docker方式安装Kuboard v3 过程

原本是想通过在k8s集群中安装kuboad v3的方式安装kuboard&#xff0c;无奈在安装过程中遇到了太多的问题&#xff0c;最后选择了直接采用docker安装的方式&#xff0c;后续有时间会补上直接采用k8s安装kuboard v3的教程。 1.kuboard安装文档地址&#xff1a; 安装 Kuboard v3 …

【机器学习】视觉基础模型的三维意识:前沿探索与局限

视觉基础模型的三维意识&#xff1a;前沿探索与局限 一、引言二、视觉基础模型的三维意识三、当前模型的局限性四、实验与结果五、总结与展望 大规模预训练的进展已经产生了具有强大能力的视觉基础模型。最近的模型不仅可以推广到任意图像的训练任务&#xff0c;而且它们的中间…