ElasticSearch知识点汇总

news2024/11/27 3:37:37

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.coloradmin.cn/o/1650706.html

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

相关文章

【消息队列】MQ介绍

MQ MQ(MessageQueue),中文是消息队列,就是存放消息的队列,也是下面提到的事件驱动架构中的Broker 同步调用的优点: 时效性强,可以立即得到结果 同步调用的问题: 耦合度高性能和吞吐…

基于 llama2 的提示词工程案例2

优化大型语言模型(LLMs) 优化大型语言模型(LLMs)中的提示词(prompts)是提高模型性能和输出相关性的重要手段。以下是一些优化提示词的方向: 明确性:确保提示词清晰明确,…

【Java 刷题记录】前缀和

前缀和 25. 一维前缀和 示例1: 输入: 3 2 1 2 4 1 2 2 3输出: 3 6import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(S…

【强化学习】公平性Actor-Critic算法

Bringing Fairness to Actor-Critic Reinforcement Learning for Network Utility Optimization 阅读笔记 Problem FormulationLearning AlgorithmLearning with Multiplicative-Adjusted RewardsSolving Fairness Utility Optimization Evaluations 在网络优化问题中&#xff…

PyGame 文字显示问题及解决方法

在 Pygame 中显示文字时可能会遇到一些问题,例如文字显示不清晰、字体不正确或者文字位置不准确等。以下是一些常见的问题及其解决方法,具体情况可以看看情况。 1、问题背景 一位用户在使用 PyGame 库进行游戏开发时,遇到了一个问题&#xf…

[AI OpenAI-doc] 迁移指南 Beta

我们已经改变了助手 API 在 beta 的 v1 版本和 v2 版本之间工具和文件的工作方式。今天,通过 API,两个 beta 版本仍然可以访问,但我们建议尽快迁移到我们 API 的最新版本。我们将在 2024 年底之前废弃 beta 的 v1 版本。 如果您今天不使用助手…

套管外径测量仪 多尺寸型号 规格全可定制

套管(bushing)是一种将带电导体引入电气设备或穿过墙壁的一种绝缘装置。前者称为电器套管,后者称为穿墙套管。套管通常用在建筑地下室,是用来保护管道或者方便管道安装的铁圈。套管的分类有刚性套管、柔性防水套管、钢管套管及铁皮…

SpringBoot中HandlerInterceptor拦截器的构建详细教程

作用范围:拦截器主要作用于Spring MVC的DispatcherServlet处理流程中,针对进入Controller层的请求进行拦截处理。它基于Java的反射机制,通过AOP(面向切面编程)的思想实现,因此它能够访问Spring容器中的Bean…

Python-VBA函数之旅-property函数

目录 一、property函数的常见应用场景 二、property函数使用注意事项 三、如何用好property函数? 1、property函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、prop…

【北京迅为】《iTOP-3588开发板源码编译手册》-第4章 Android12/Linux设备树简介

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

4.【Orangepi Zero2】Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90)

Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90) signalsetitimer示例 软件PWM驱动舵机(SG90) signal 详情请看Linux 3.进程间通信(shmget shmat shmdt shmctl 共享内存、si…

帆软报表实现填报报表

我们拿emp表举例 登记信息表 设计一个报表实现对emp表员工的登记 (emp表为ORACLE自带用户scott下的一个表) 首先,我们设计好填报界面,新建一个普通报表,将emp表中需要的输入一一回应填写进表中。 如下图所示&#xf…

代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路: 确定dp数组含义…

如何去官网下载windows10操作系统iso镜像

文章目录 一、先从微软中国官网https://www.microsoft.com/zh-cn/进去二、然后按图示一步步点进去三、点击下载工具这个工具会帮你生成windows操作系统iso文件四、下载好后一步步按图示要求成功操作 一、先从微软中国官网https://www.microsoft.com/zh-cn/进去 二、然后按图示一…

【牛客】排列计算

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 如果直接涂色来计算单点权重&#xff0c;2e5*2e5必然超时。 所以用差分进行优化。 3. 代码实现 #include<bits/stdc.h> using name…

【工作记录】openjdk-22基础镜像的构建

背景 近期使用到的框架底层都用的是springboot3.0&#xff0c;要求jdk版本在17甚至更高。 于是决定制作一个基于openjdk22的基础镜像&#xff0c;本文对这一过程进行记录。 作为记录的同时也希望能够帮助到需要的朋友。 期望效果 容器内可以正常使用java相关命令且版本是2…

vm虚拟机安装网络适配器驱动卡死/无响应/无限等待状态

大部分原因都是以前的vm没有卸载干净所导致的&#xff0c;只需要使用CCleaner清楚干净就好 使用控制面板里的卸载把VM卸载干净 使用CCleaner软件删除干净注册表&#xff0c;这个软件百度很容易找到&#xff0c;只有十兆左右 打开下载好的软件&#xff0c;不需要注册码&#xff…

保研面试408复习 2——操作系统、计网

文章目录 1、操作系统一、进程、线程的概念以及区别&#xff1f;二、进程间的通信方式&#xff1f; 2、计算机网络一、香农准则二、协议的三要素1. 语法2. 语义3. 时序 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 1、操作系统 一、进程、线程的概念以及…

Pycharm无法链接服务器环境(host is unresponsived)

困扰了很久的一个问题&#xff0c;一开始是在服务器ubuntu20.04上安装pycharm community&#xff0c;直接运行服务器上的pycharm community就识别不了anaconda中的环境 后来改用pycharm professional也无法远程连接上服务器的环境&#xff0c;识别不了服务器上的环境&#xff…

ASP.NET网上鲜花销售系统的设计

摘 要 本系统实现了一般电子商务所具备的功能&#xff0c;如商品浏览、用户登录注册、网上与购物、结算、后台数据库管理等&#xff0c;利用这些功能可以对鲜花销售信息进行较好的管理。 网上鲜花销售系统的使用者主要是客户和销售管理者&#xff0c;对于客户来说&#xff0…