ElasticSearch之数据分片和故障转移

news2024/10/5 20:23:59

写在前面

基础环境可以参考ElasticSearch之分布式模型介绍,选主,脑裂 。

本文看下es的数据分片和故障转移相关内容。

1:数据分片

分片,英文是shard,存储在data node ,分为主分片和副本分片,英文分别是primary shards和replica shards,比如当前我们的完整数据是1,2,3,4,5,6,进行如下设置:
在这里插入图片描述
则可能的数据存储情况如下:
在这里插入图片描述
这里的number_of_shard:3指的就是上图的3个长方形,即将数据分成了3份来存储,number_of_replica:1指的是每个长方形的主分片都将复制一份存储,也就是存储到对应的椭圆形副本分片, 这个关系参考下图:
在这里插入图片描述

在生产环境中我们需要设置合理的主分片和副本分片数,主分片数如果是设置过小,将无法无法实现通过增加节点的方式来实现数据存储的横向扩展,比如主分片设置为1,则最多只有一个data node可以分配主分片,再增加data node也于事无补,但是也不能设置过多的数据分片,数据分片过多会导致数据读取性能的下降(多份来自不同主分片的数据需要聚合),一个节点上过多的分片也会导致性能下降。副本分片数设置为0可能会有数据丢失风险,设置过大,会影响数据的写入性能。

所以不管是主分片数还是副本分片数都需要设置一个合理的数值才行。主分片数需要结合具体的业务数据量来测试得出,副本分片数一般设置为1即可,这样即不会过度影响数据写入的性能,也避免了因为主分片所在data node损坏而出现的数据丢失。

2:故障转移和实例

准备es和cerebro的基础环境参考这篇文章 。

2.1:什么是故障转移

自动将宕机节点的分片信息(主分片primary shard,副本分片 replica shard)转移到正常节点,以正常的对外提供服务。

2.2:实例

首先我们来启动第一个es:

bin/elasticsearch -E node.name=xiaohengnode1 -E cluster.name=xiaoheng -E path.data=xiaoheng0_data -E http.port=9200

cerebro查看:
在这里插入图片描述
然后我们创建一个主分片=3,副本分片=1即索引test:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到此时集群的状态是yellow的,这是因为副本分片没有可分配的data node,接着我们再来启动一个es实例:

bin/elasticsearch -E node.name=xiaohengnode2 -E cluster.name=xiaoheng -E path.data=xiaoheng1_data -E http.port=9201

再看cerebro,就正常了:
在这里插入图片描述
为了测试故障转移的效果,我们再来启动一个es实例:
在这里插入图片描述
此时分片就重新分配到三个节点了:
在这里插入图片描述
接着我们来停止一个节点:

# 停止
[elk@localhost elasticsearch-7.6.2]$ ps -ef | grep elasti
elk        2957      1 40 01:56 pts/0    00:00:20 /opt/program/elasticsearch-7.6.2/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.... -cp /opt/program/elasticsearch-7.6.2/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
[elk@localhost elasticsearch-7.6.2]$ kill -9 2957

看下故障转移的效果:

集群状态变为yellow:
在这里插入图片描述
在等几秒种,多刷几次,看下故障转移的效果:
在这里插入图片描述
可以看到恢复到了2节点集群时的状态。

写在后面

参考文章列表

ElasticSearch之分布式模型介绍,选主,脑裂 。

ElasticSearch之安装和简单配置 。

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

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

相关文章

数据治理实战——翼支付金融板块业务数仓建设和数据治理之路

目录 一、数据治理背景 二、数据治理建设内容 2.1 组织协同 2.2 平台建设 2.3 数据应用治理 2.4 数据规范 2.5 数据安全 三、企业级数仓建设 3.1 调研阶段 2.2 平台护航 2.3 数仓分层 2.4 维度建模 2.4.1 维度建模四步曲 2.4.2 命名规范 2.4.3 资产沉淀 2.4.4 …

【JS】WebSocket:实现实时通信功能。

【JS】WebSocket:实现实时通信功能。 一、WebSocket是什么?二、为什么需要WebSocket?三、WebSocket的优势四、WebSocket实现方式五、示例1:实时数据展示六、示例2:实现简易聊天室 如果想需要websocket实现功能,后端也要进行对应的…

前端食堂技术周刊第 114 期:Interop 2024、TS 5.4 RC、2 月登陆浏览器的新功能、JSR、AI SDK 3.0

美味值:🌟🌟🌟🌟🌟 口味:凉拌鸡架 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…

tsc : 无法加载文件 C:\Users\Administrat\AppData\Roaming\npm\tsc.ps 1,因为在此系统上禁止运行脚本

报错:tsc : 无法加载文件 C:\Users\Administrat\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 解决 使用命令行时出现ab…

Excel中筛选合并单元格后,只显示第一行怎么办?

Excel中筛选合并单元格后,只显示第一行怎么办? 我们日常的Excel数据在展示的时候为了数据的清晰和美观往往部分相同的单元格进行合并,但是合并之后在筛选时会发现结果会显示异常。 现在我们筛选下国籍为中国的员工信息,发现只显示了一条数据,解决这个异常只需要五Excel步:…

使用Pytorch导出自定义ONNX算子

在实际部署模型时有时可能会遇到想用的算子无法导出onnx,但实际部署的框架是支持该算子的。此时可以通过自定义onnx算子的方式导出onnx模型(注:自定义onnx算子导出onnx模型后是无法使用onnxruntime推理的)。下面给出个具体应用中的…

【Maven】Maven 基础教程(四):搭建 Maven 私服 Nexus

《Maven 基础教程》系列,包含以下 4 篇文章: Maven 基础教程(一):基础介绍、开发环境配置Maven 基础教程(二):Maven 的使用Maven 基础教程(三):b…

JVM(类加载机制)

类加载就是 .class 文件, 从文件(硬盘) 被加载到内存(元数据区)中的过程 类加载的过程 加载: 找 .class 文件的过程, 打开文件, 读文件, 把文件读到内存中 验证: 检查 .class 文件的格式是否正确 .class 是一个二进制文件, 其格式有严格的说明 准备: 给类对象分配内存空间 (先在…

c++ thread的使用 调用类里面的函数和调用类外的函数的区别

1.thread 调用类外的函数。 在使用thread之前要加上#include <thread>。 例1&#xff1a; #include <iostream> #include <thread> using namespace std; void Threadfunc1() {cout << "Threadfunc1" << endl; }void Threadfunc2(in…

sqllab 11-22

11.有回显&#xff0c;单引号 首先判断是字符型还是数字型 通过order by 来获取字段数 方便后续union联合 注意这里mime表明了内容要进行url编码&#xff0c;测试3报错&#xff0c;2正常&#xff0c;所以有2列。 还需要判断显示位&#xff0c;因为只有显示位的数据才能被爆出…

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Python处理表格数据库之Agate使用详解

概要 您是否有时觉得在处理表格数据时感到不知所措? 也许你在处理一个大型 CSV 文件,遇到了各种数据不一致的问题,或者需要验证数据,确保其准确无误才能进行下一步分析。 传统的数据分析库或许功能强大,但学习曲线陡峭,用起来有点杀鸡用牛刀的感觉。 这时,有一个更…

Redis是AP的还是CP的?

redis是一个开源的内存数据库&#xff0c;那么他到底是AP的还是CP的呢&#xff1f; 有人说&#xff1a;单机的是redis是cp的&#xff0c;而集群的redis是ap的&#xff1f; 但是我不这么认为&#xff0c;我觉得redis就是ap的&#xff0c;虽然在单机redis中&#xff0c;因为只有…

计算机网络实验 基于ENSP的协议分析

实验二 基于eNSP的协议分析 一、实验目的&#xff1a; 1&#xff09;熟悉VRP的基本操作命令 2&#xff09;掌握ARP协议的基本工作原理 3&#xff09;掌握IP协议的基本工作原理 4&#xff09;掌握ICMP协议的基本工作原理 二、实验内容&#xff1a; 1、场景1&#xff1a;两台PC机…

力扣每日一题 用队列实现栈 模拟

Problem: 225. 用队列实现栈 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 力扣官解 辅助队列存栈顶元素主队列存逆序序列 复杂度 时间复杂度: 添加时间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例&#xff1a; O ( …

Markdown的语法使用

目录 前言一、Markdown基本使用二、基本使用补充2.1 三、特殊字符四、数学公式 前言 Markdown是网页版的文本编辑器&#xff0c;Markdown 允许您使用易于阅读、易于编写的纯文本格式进行编写&#xff0c;然后将其转换为结构有效的 XHTML&#xff08;或 HTML&#xff09;。本文主…

【C语言】内存操作篇---动态内存管理----malloc,realloc,calloc和free的用法【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为【C语言】内存操作篇---动态内存管理----malloc&#xff0c;realloc&#xff0c;calloc和free的用法【图文详解】&#xff0c;感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 前言 在学完结构体后&#xff08;…

《Trustzone/TEE/安全-实践版》介绍

第一章&#xff1a;课程说明和准备 课程介绍和说明 资料准备 为什么使用qemu_v8环境&#xff1f; 为什么选择香橙派开发板&#xff1f; optee qemu_v8环境展示 香橙派optee环境展示 第二章&#xff1a;Qemu环境搭建 ubuntu20.04的安装(virtualboxubuntu20.04) 搭建optee qem…

云手机的境外舆情监控应用——助力品牌公关

在当今数字化时代&#xff0c;社交媒体已成为品牌传播和互动的主要平台。随之而来的是海量的信息涌入&#xff0c;品牌需要及时了解并应对海外社交媒体上的舆情变化。本文将介绍如何通过云手机进行境外舆情监控&#xff0c;更好地帮助企业公关及时作出决策。 1. 境外舆情监控与…

BUUCTF---[BJDCTF2020]藏藏藏1

1.题目描述 2.下载附件&#xff0c;解压之后是一张图片和一个文本 3.把图片放在winhex,发现图片里面包含压缩包 4.在kali中使用binwalk查看&#xff0c;然后使用foremost分离&#xff0c;在使用tree查看分离出来的文件&#xff0c;最后将zip文件使用unzip进行解压。步骤如下 5.…