大数据面试题之Elasticsearch:每日三题(六)

news2024/11/14 16:35:49

大数据面试题之Elasticsearch:每日三题

  • 1. 为什么要使用Elasticsearch?
  • 2.Elasticsearch的master选举流程?
  • 3.Elasticsearch集群脑裂问题?

在这里插入图片描述

1. 为什么要使用Elasticsearch?

系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用ES做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的商品表中的商品名,描述,价格还有id这些字段我们放入ES索引库里,可以提高查询速度。

2.Elasticsearch的master选举流程?

  • Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分
  • 对所有可以成为master的节点(node.master:true)根据nodeId字典排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。
  • 如果对某个节点的投票数达到一定的值(可以成为master节点数n/2+1)并且该节点自己也选举自己,那这个节点就是master。否则重新选举一直到满足上述条件。
  • master节点的职责主要包括集群,节点和索引的管理,不负责文档级别的管理;data节点可以关闭http功能。

3.Elasticsearch集群脑裂问题?

"脑裂"问题可能的成因:

  • 网络问题:集群间的网络延迟导致一些节点访问不到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节点分离,限制角色
    主节点配置为:node.master:true node.data:false
    从节点配置为:node.master:false node.data:true

在这里插入图片描述

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

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

相关文章

如何创建一个容器并运行docker镜像

文章目录 如何创建一个容器并使用docker镜像docker命令解析nacos启动成功 访问 进入容器,修改配置文件 接上集 CentOS 7安装Docker https://blog.csdn.net/qq_39017153/article/details/131955100 如何创建一个容器并使用docker镜像 还是打开镜像容器官网https://hu…

JS如何获取最近一个月或指定天数的日期,并以数组的形式存储

JS如何获取最近一个月或指定天数的日期,并以数组的形式存储 代码 num为传递的天数 (传递30查最近一个月) get_date(num) {let dateArray []//获取今天日期let myDate new Date()let today myDate.getFullYear() - (myDate.getMonth() 1) "-" myDate.getDate(…

升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】

简介 升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。 完整私有化包下载地址 💾 https://kf.shengxunwei.com/freesite.zip 当前版本信息 发布…

【unity之IMGUI实践】敌方逻辑封装实现【六】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

技术实力加速企业上云,联想混合云获评专有云优秀案例入选混合云全景图四大方向

7月25-26日,由中国信息通信研究院、中国通信标准化协会联合主办的第十届可信云大会在京顺利召开。大会重磅发布了云计算白皮书(2023年)、《混合云产业全景图(2023)》、中国算力服务研究报告、中国云计算发展指数报告等…

Stream流之distinct去重详细用法

前言 distinct方法在Stream流中可以进行集合中的去重操作,但是要按照集合中的数据类型具体来定义。简单数据类型和自定义数据类型操作不同。 简单数据类型 这里以List集合为例,并且集合中数据类型为Integer。简单数据类型直接调用Stream中的distinct方…

抖音短视频seo源码矩阵系统开发

一、前言: 抖音SEO源码矩阵系统开发是一项专为抖音平台设计的SEO优化系统,能够帮助用户提升抖音视频的搜索排名和曝光度。为了确保系统运行正常,需要安装FFmpeg和FFprobe工具。FFmpeg是一个用于处理多媒体数据的开源工具集,而FFpr…

【密码学】三、分组密码的工作模式

分组密码的工作模式 ECB模式CBC模式CFB模式OFB模式CTR模式 电子密码本ECB、密码分组链接模式CBC、密码反馈模式CFB和输出反馈模式OFB、计数器模式CTR ECB模式 它一次对一个64bit长的明文分组加密,而且每次的加密密钥都相同。可以认为有一个非常大的电子密码本&…

在数字化时代,数字孪生能挽回中医的地位嘛?

中医作为中国传统医学的瑰宝,拥有悠久的历史和深厚的文化底蕴。然而,随着现代医学的快速发展,中医面临着许多挑战和困境。在这个数字化时代,数字孪生作为一项前沿技术,是否能为中医行业带来新的希望和机遇呢&#xff1…

制定机器学习规划路线:从入门到专业

文章目录 🍀第一阶段:入门基础🍀了解机器学习概念🍀学习编程和数学基础🍀探索经典机器学习算法🍀完成实践项目 🍀第二阶段:深入学习🍀 掌握深度学习基础🍀学习…

无法定位程序输入点:于动态链接库KERNEL32.dll上(未解决)

错误如图: 搜索了一下,说是下载KERNEL32.dll。我在WINDOWS目录下搜索了,实际上这个文件已经存在: 原因猜测,应该是软件本身与系统版本不配套导致的。可能是.NET?C

JAVA课程期末复习学习总结

JAVA课程学习总结 知识点总结 文章目录 JAVA课程学习总结知识点总结Eclipse如何与GitHub连接1.前期准备2.远程建库3.本地操作 常用DOS命令数组正则表达式继承多态向上转型向下转型多态的应用抽象方法 抽象类与接口的异同点不同点:相同点:从设计理念层面…

【MySQL】事务与隔离级别详解

【MySQL】事务 事务的概念为什么要有事务引擎对事务的支持事务的提交方式事务的操作准备正常事务操作:启动、回滚、提交非正常事务总结 事务的隔离级别隔离性隔离级别隔离级别的查看设置隔离级别会话级别全局级别 隔离级别的具体体现读未提交 Read Uncommitted读提交…

本土机器视觉创业企业涌现,深眸科技携手AI+3D视觉勇闯小场景赛道

随着工业自动化技术向智能化方向发展,人工智能实现快速落地,机器视觉应用产品在算力、算法和技术等方面得到持续升级,助力中国机器视觉行业进入高质量发展阶段。 在制造业转型升级、新兴产业发展的过程中,中国作为全球制造中心之…

第十四章:通过迭代挖掘共同物体特征的弱监督语义分割

0.摘要 在图像标签监督下进行弱监督语义分割是一项具有挑战性的任务,因为它直接将高层语义与低层外观相关联。为了弥合这一差距,本文提出了一种迭代的自底向上和自顶向下的框架,交替扩展对象区域和优化分割网络。我们从分类网络产生的初始定位…

新版mmpose训练新版RTMDet/Pose及自定义数据集制作

自定义数据集制作:要求满足目标检测网络和关键点检测网络都可以用其来训练 1. 打开Labelme并导入我们的图像文件夹;2. 用矩形框框出目标检测网络要检测的目标,我们起名叫person;3. 用Creat Point 标记关键点,这里我们只检测人的头和裆两个点。这里教一个小技巧:每一个数据…

Mindar.JS——实现AR图像追踪插入图片或视频

Mindar.JS使用方式 注意&#xff1a;此篇文章需要启动https才可调用相机权限 图像追踪示例 需要用到两个js库 <script src"./js/aframe.min.js"></script><script src"./js/mindar-image-aframe.prod.js"></script>下面看一下标签…

一款性价比高的知识管理系统应具备的功能

编者按&#xff1a;市面上的知识管理系统有不同的类型&#xff0c;有针对文件管理的&#xff0c;也有针对内容管理的&#xff0c;各有长处&#xff0c;那么一款好用的KMS大概都具备哪些优点呢&#xff1f; 关键词&#xff1a;知识管理系统、免运维/安装、 随着企业对企业隐形知…

PyCharm解决Git冲突

什么时候会出现冲突 当我们从远程的仓库pull下来的时候&#xff0c;如果远程仓库跟本地仓库修改了同一个文件&#xff0c;在pull的过程中就会提示合并冲突&#xff1a; $ git pull remote developremote: Enumerating objects: 27, done.remote: Counting objects: 100% (27/2…

Postgres日期格式化

1、替换dual的方法 oracle: select ‘111’ phone from dual; Postgres: select ‘111’ phone ; 2、char类型格式化成日期 to_date(‘20230728’,‘yyyyMMdd’) 3、两个日期取相差的天数&#xff08;非绝对值&#xff0c;带正负号&#xff09; extract(day from now()-to_date…