ElasticSearch知识点汇总

1、ES中的​​​​​​​倒排索引是什么。

倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典+映射表即为倒排索引

2、ES是如何实现master选举的。

选举过程主要包括以下几个步骤:

心跳检测:

每个节点都会定期向集群发送心跳信号,告诉其他节点它仍然存活。如果某个节点在一段时间内没有发送心跳信号,那么它就会被认为已经死亡,选举会重新开始。

候选者列表:

当有节点想要成为 master 节点时,它会将自己添加到候选者列表中。候选者列表中的节点数量可以根据配置进行调整。

投票:

当一个节点成为候选者后,它会向集群中的其他所有节点发送投票请求。每个节点在收到请求后,会根据一定的规则决定是否投票给这个候选者。投票规则通常会考虑节点的健康状况、存储的数据量、负载情况等因素。

选举结果:

如果某个候选者得到了超过半数的投票,那么它就会成为新的 master 节点。如果两个或更多的候选者得到了相同的票数,那么集群将会再次进行选举。

3、如何解决ES集群的脑裂问题。

产生脑裂的可能原因:

网络问题:

 集群间的网络延迟导致一些节点访问不到 master,认为 master 挂掉了从而选举出新的master,并对 master 上的分片和副本标红,分配新的主分片。

节点负载:

主节点的角色既为 master 又为 data,访问量较大时可能会导致 ES 停止响应造成大面积延迟,此时其他节点得不到主节点的响应认为主节点挂掉了,会重新选取主节点。

内存回收:

data 节点上的 ES 进程占用的内存较大,引发 JVM 的大规模内存回收,造成 ES 进程失去响应。

解决方案:

减少误判:        

discovery.zen.ping_timeout 节点状态的响应时间,默认为 3s,可以适当调大,如果 master在该响应时间的范围内没有做出响应应答,判断该节点已经挂掉了。调大参数(如 6s,discovery.zen.ping_timeout:6),可适当减少误判。

选举触发:

 discovery.zen.minimum_master_nodes:1,该参数是用于控制选举行为发生的最小集群主节点数量。当备选主节点的个数大于等于该参数的值,且备选主节点中有该参数个节点认为主节点挂了,进行选举。官方建议为(n/2)+1,n 为主节点个数(即有资格成为主节点的节点个数)

角色分离:    

即 master 节点与 data 节点分离,限制角色

4、索引创建过程

官网图如下

第一步:客户写集群某节点写入数据,发送请求。(如果没有指定路由/协调节点,请求的节点扮演路由节点的角色。)

第二步:节点1接受到请求后,使用文档_id来确定文档属于分片0。请求会被转到另外的节点,假定节点3。因此分片0的主分片分配到节点3上。

第三步:节点3在主分片上执行写操作,如果成功,则将请求并行转发到节点1和节点2的副本分片上,等待结果返回。所有的副本分片都报告成功,节点3将向协调节点(节点1)报告成功,节点1向请求客户端报告写入成功。

5、怎么保证读写的一致性

es怎么保证写的一致性

Elasticsearch(ES)保证写入一致性的方法主要依赖于其内置的一致性模型和配置。以下是一些关键点:

一致性级别

ES 允许你设置索引的一致性级别,可以是 quorum(大多数节点可用)、one(单个节点可用)、all(所有节点可用)。

复制机制

通过设置索引的复制分片策略,可以控制数据是被复制到多个节点上,以确保在某个节点失败时数据不丢失。

事务日志

ES 在写入数据之前会先写入一个事务日志,确保即使数据节点失败,也能基于事务日志进行数据恢复。

文档版本控制

ES 使用文档版本来保证写入的一致性,当你更新文档时,如果版本号匹配,则允许操作;否则,拒绝操作。

QUORUM 写入

在执行写入操作时,只有大多数分片可用,操作才会成功。

6、更新和删除文档的过程

6.1、 删除和更新也都是写操作,但是Elasticsearch中的文档是不可变的,因此不能被删除或者改动以展示其变更;

6.2、 磁盘上的每个段都有一个相应的.del文件。当删除请求发送后,文档并没有真的被删除,而是在.del文件中被标记为删除。该文档依然能匹配查询,但是会在结果中被过滤掉。当段合并时,在.del文件中被标记为删除的文档将不会被写入新段。

6.3、 在新的文档被创建时,Elasticsearch会为该文档指定一个版本号,当执行更新时,旧版本的文档在.del文件中被标记为删除,新版本的文档被索引到一个新段。旧版本的文档依然能匹配查询,但是会在结果中被过滤掉。

7、分词器的类型

7.1、Standard Analyzer

标准分析器是默认分词器,如果未指定,则使用该分词器。

它基于Unicode文本分割算法,适用于大多数语言。

7.2、Whitespace Analyzer

基于空格字符切词。

7.3、Stop Analyzer

在simple Analyzer的基础上,移除停用词。

7.4、Keyword Analyzer

不切词,将输入的整个串一起返回。

7.5、自定义分词器

自定义分词器的在Mapping的Setting部分设置:

PUT my_custom_index { "settings":{ "analysis":{ "char_filter":{}, "tokenizer":{}, "filter":{}, "analyzer":{} } } }

脑海中还是上面的三部分组成的图示。其中:

“char_filter”:{},——对应字符过滤部分;

“tokenizer”:{},——对应文本切分为分词部分;

“filter”:{},——对应分词后再过滤部分;

“analyzer”:{}——对应分词器组成部分,其中会包含:1. 2. 3

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

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

相关文章

“Postman 中文版使用教程:如何切换到中文界面?”

Postman 的很好用的接口测试软件。但是,Postman 默认是英文版的,也不支持在软件内切换为中文版。很多同学的英语并不是很好,看到一堆的英文很是头痛。 今天我们来介绍下:切换到 Postman 中文版的方法。想要学习更多的关于 Postma…

药物代谢动力学学习笔记

一、基本概念 二、经典房室模型 三、非线性药物代谢动力学 四、非房室模型 五、药代动力学与药效动力学 六、生物等效性评价 七、生物样品分析方法 基本概念 生物样品:生物机体的全血、血浆、血清、粪便、尿液或其他组织的样品 特异性,specificity&…

nvcc: command not found

nvcc: command not found nvcc命令是 NVIDIA CUDA 编译器,就类似于gcc是c语言的编译器,用于编译 CUDA 代码并生成 GPU 可执行文件。由于程序是要经过编译器编程成可执行的二进制文件,而cuda程序有两种代码,一种是运行在CPU上的ho…

改变视觉创造力:图像合成中基于样式的生成架构的影响和创新

原文地址:revolutionizing-visual-creativity-the-impact-and-innovations-of-style-based-generative 2024 年 4 月 30 日 介绍 基于风格的生成架构已经开辟了一个利基市场,它将机器学习的技术严谨性与类人创造力的微妙表现力融为一体。这一发展的核…

消费金融平台公司如何做大做强自营产品

本文来自于2019年的某次内部分享沟通会,部分敏感内容已做删减。

基于python+django网易新闻+评论的舆情热点分析平台

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

密码学《图解密码技术》 记录学习 第十四章

目录 十四章 14.1 本章学习的内容 14.2 什么是 SSL/TLS 14.2.1 Alice 在 Bob 书店买书 14.2.2 客户端与服务器 14.2.3 АSSL/TLS 承载HTTP 14.2.4 SSL/TLS的工作 14.2.5 SSL/TLS也可以保护其他的协议 14.2.6 密码套件 14.2.7 SSL 与 TLS 的区别 14.3 使用 SSL/TLS 进…

如何有效访问Exness官网中文版!技巧与注意事项

Exness是一家全球知名的在线外汇和差价合约经纪商,为全球客户提供丰富的交易工具。由于Exness的国际化运营,它提供多种语言版本的官网,其中包括中文版。为了确保用户在Exness官网中文版的访问体验良好,了解一些技巧和注意事项至关…

为什么SSL证书的有效期很短?

在当今互联网世界中,SSL证书作为保障网站数据传输安全的重要工具,其有效期往往被设定为相对较短的时间。对于许多非专业人士来说,可能会好奇:为什么SSL证书不能像其他证件一样拥有较长的有效期呢?今天,我们…

桌面文件删除了怎么恢复?4个靠谱方法分享!

“我平常工作的时候喜欢将文件直接保存在电脑桌面上,但是今天一打开电脑,突然发现我的文件都不见了,有什么恢复桌面文件的简单方法吗?希望大家可以推荐几个。” 很多用户在使用电脑时可能都习惯了把文件直接放在桌面上&#xff0c…

Linux主机重启后报错:[FAILED] Failed to start Switch Root.

一、问题描述 某次云主机因计费问题,导致批量重启,重启后发现某台云主机竟进入紧急救援模式(emergency模式),如下所示: 二、原因及处理 1)原因:加载根分区失败,导致无…

盒模型,BFC以及行内块级元素

一.盒模型篇 css基础框盒模型介绍: 当对一个文档进行布局的时候,浏览器的渲染引擎会根据标准之一的css基础框盒模型,将所有元素表示为一个个矩形的盒子,每个盒子由四部分组成,分别是内容 内边距 边框 外边距&#xff…

每日OJ题_DFS解决FloodFill⑥_力扣529. 扫雷游戏

目录 力扣529. 扫雷游戏 解析代码 力扣529. 扫雷游戏 529. 扫雷游戏 难度 中等 让我们一起来玩扫雷游戏! 给你一个大小为 m x n 二维字符矩阵 board ,表示扫雷游戏的盘面,其中: M 代表一个 未挖出的 地雷,E 代表…

产品推荐 | 基于Intel (Altera) Cyclone V打造的水星Mercury SA1核心板

01 产品概述 水星Mercury SA1片上系统(SoC)核心板通过结合基于ARM处理器的SoC FPGA、快速DDR3L SDRAM、eMMC flash、QSPI flash、Gigabit Ethernet PHY和RTC形成了一个高性能嵌入式处理方案,结合了CPU系统的灵活性和FPGA原始的、实时的并行处…

【三维重建】摄像机标定(张正友相机标定法)

摄像机标定的目的是为了求解摄像机的内、外参数 求解投影矩阵M 通过建立特殊的场景,我们能过得到多对世界坐标和对应图像坐标 根据摄像机几何可知 : ,M是一个3*4的矩阵,令 通过一对点可以得到两个方程组,M中一共有11…

36.Docker-Dockerfile自定义镜像

镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 镜像是分层机构,每一层都是一个layer BaseImage层:包含基本的系统函数库、环境变量、文件系统 EntryPoint:入口,是镜像中应用启动的命令 其他:在…

spring boot3单模块项目工程搭建-下(个人开发模板)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 上文衔接 常用依赖介绍以及整合 web组件 测试组件 样板代码生成 数据库连接器 常用工具包 面向切面编程 ORM框架 数据连接池 接口测试、文档导出 缓存中间件 参数校…

基于Java+SpringBoot+Vue前后端分离仓库管理系统详细设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

【图像增强(空域)】基于直方图增强的图像增强及Matlab仿真

1. 摘要 图像的灰度直方图表示灰度图像中具有每种灰度像素的个数,反映了图像中每种灰度级出现的频率,是图像的基本统计特征之一。直方图均衡方法因为其有效性和简单性已成为图像对比度增强的最常用的方法。其基本思想是根据输入图像的灰度概率分布来确定…

Jetson Nano部署YOLOv5与Tensorrtx加速——(自己走一遍全过程记录)

说在前面 搞了一下Jetson nano和YOLOv5,网上的资料大多重复也有许多的坑,在配置过程中摸爬滚打了好几天,出坑后决定写下这份教程供自己备忘。 事先声明,这篇文章的许多内容本身并不是原创,而是将配置过程中的文献进行…