ES集群的状态有哪些,为什么主分片数目是固定的,副本分片却能动态调节,快看看这些关于ES的问题你都知道吗?

1. ES集群的状态 green 最健康的状态,说明所有的分片包括备份都可用

yellow 基本的分片可用,但是备份不可用(或者是没有备份)

red 部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好

2. ES主分片数目为什么索引创建的时候就要确定?主分片数目如何确定

ES根据数据ID路由到分片方式为: shard = hash % primary_shard_num 。因此主分片的数目必须在索引创建之前确定好。

由于新加入节点,ES会自动对节点进行负载均衡,因此,主分片的数目主理想的数目是每个节点上一个主分片,数目与节点个数一样。

3. 新节点加入,节点故障会发生什么

新节点加入, Elasticsearch 将自动在可用节点间进行分片均衡,集群中的节点之间互相拷贝分片数据。原节点把迁移到其他节点分片的数据进行删除。

节点故障(主节点),状态为red

集群选举出新的主节点

将对应丢失的主分片的副本分片提升为主分片(yellow)

等待delayed_timeout (默认1min),如果故障节点还没回复,则在当前健康节点重建副本节点(green)

4. 主,副分片不同

每个分片都能独立执行数据搜索。ES集群中,每个节点都能处理任意请求。每个节点都知道任意文档的位置。

分片分为主分片与副本分片。主分片数目在索引创建的时候就确定好了,这个数目定义了这个索引能够 存储 的最大数据量。

读操作——搜索和返回数据——可以同时被主分片 或 副本分片所处理,所以当你拥有越多的副本分片时,也将拥有越高的吞吐量。副本分片数目可以动态调节

5. 数据插入的过程 shard_num = hash(\routing) % num_primary_shards,计算出文档要分配到的分片,在从集群元数据中找出对应主分片的位置

请求接着会发送给Primary Shard,在Primary Shard上执行成功后

从Primary Shard上将请求同时发送给多个Replica Shard,请求在多个Replica Shard上执行成功并返回给Primary Shard后,写入请求执行成功

返回结果给客户端。

Elasticsearch为了减少磁盘IO保证读写性能,一般是每隔一段时间(比如5分钟)才会把Lucene的Segment写入磁盘持久化。为了保证写入Lucene内存的数据不丢失,引入Translog

在每一个Shard中,写入流程分为两部分,先写入Lucene,再写入TransLog。写入请求到达Shard后,先写Lucene文件,创建好索引,此时索引还在内存里面,接着去写TransLog,写完TransLog后,刷新TransLog数据到磁盘上,写磁盘成功后,请求返回给用户。

关于TranseLog两个点: 先写内存,最后才写TransLog,

每隔一段比较长的时间,比如30分钟后,Lucene会把内存中生成的新Segment刷新到磁盘上,刷新后索引文件已经持久化了,历史的TransLog就没用了,会清空掉旧的TransLog。 Elasticsearch内核解析 - 写入篇

6. 数据查询流程 协调节点将检索请求广播到每个分片上

每个分片本地执行检索请求,构建检索匹配的优先队列(返回数据ID)

协调节点整合全局搜索结果集数据ID

协调节点通过数据ID,提交多个获取数据的请求

每个节点将数据返回给协调节点,协调节点返回给客户端

es集群节点数和分片数关系_ES数据插入和查询流程是怎么样的?相关推荐

  1. 【ES实战】ES集群节点迁移与缩容补充说明

    [ES实战]ES集群节点迁移与缩容补充说明 [ES实战]ES集群节点迁移与缩容 文章目录 [ES实战]ES集群节点迁移与缩容补充说明 1.集群的现状分析和集群的规划 2.集群健康关注点,变化关注点 3 ...

  2. ES集群中出现UNASSIGNED分片时的解决思路

    原文:https://www.modb.pro/db/182864 引入此问题的原因,是因为在单节点的ES部署策略中,如果在设置某个ES索引的replica不为零,你会发现. 存在Unassigned ...

  3. es集群节点加入失败join validation on cluster state with a different cluster uuid...than local cluster uuid..

    本来之前已经将es集群搭建完成了,但是不小心使用rm -rf /var/lib把文件删除了,我本来只想删除/var/lib下的一个文件夹的,结果删错了,整个集群没了,这,,,,还好集群上跑的都是一些测 ...

  4. es集群节点数和分片数关系_ElasticSeaerch(弹性搜索数据库)中集群、节点、副本和分片的区别...

    简单总结下: 1.集群cluster: 集群顾名思义就是多个相同集群名称的es节点组合在一起.相当于一个集群就是一个班级,班级下面的学生就是节点. 如果只有一个节点在运行就称为单节点. 2.节点nod ...

  5. ES命令行查询es集群的状态、分片、索引

    查看es集群状态 curl -XGET -uelastic -p http://172.18.35.144:9200/_cat/health?v cluster ,集群名称 status,集群状态 g ...

  6. 教你在Kubernetes中快速部署ES集群

    摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...

  7. Elasticsearch-Jest 配置ES集群源码解读

    文章目录 Jest Github地址 搭建源码环境 Jest配置ES集群 Jest 配置ES集群,确保应用高可用的原理探究 初始化 JestClient NodeChecker 源码分析 发起请求的过 ...

  8. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路

    前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...

  9. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

最新文章

  1. 我的世界服务器ess配置信息,[搬运贴]超详细的Ess基础插件介绍
  2. CBS多机器人路径规划
  3. 网络推广专员浅析如何在日常网络推广过程中增加网站转化率?
  4. 从 Hive 大规模迁移作业到 Spark 在有赞的实践
  5. Oracle常用命令大全(经典收藏)
  6. 《Essential C++》笔记之传引用(pass by reference)分析
  7. Java多线程学习总结(3)——Java线程的6种状态及切换
  8. React Native随笔 2--重要函数
  9. 系统集成管理师2011下半年软考透解 四
  10. Atitit 网盘使用法 艾提拉著 目录 1. 需要解决几个问题 2 1.1. 多关键词搜索的问题 使用every索引解决 2 1.2. 重要文具类索引使用分类索引 日志 crm类增加000前缀
  11. 合肥工业大学机器人足球仿真robcup作业一(python实现)附代码有注释
  12. 北京圣思园经典Java培训教学视频分享
  13. Sublime Text 3在行前插入递增数字序号的方法
  14. 设置Chrome新标签页为自定义地址页面
  15. 数学建模竞赛题目 资产清算交易策略
  16. 微信小程序开发报错及解决记录
  17. android property实现路径
  18. MySQL Manual
  19. 【翻译论文】 Supervised Parametric Classification of Aerial LiDAR Data(2004)
  20. 程序员,吃什么对身体好

热门文章

  1. 把Python函数转换成能在SQL语句中调用的函数
  2. Python使用UDP协议打造在线时间服务器
  3. Python实现中英文分词
  4. # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
  5. c语言lr分析器的设计与实现_[源码和文档分享]基于有限自动机的词法分析器构造...
  6. android如何让gps服务停止,android – 启动/停止GPS(或位置服务)时接收通知(通过BroadcastReceiver)...
  7. C语言作业完成情况dazuoye,成都信息工程学院C语言作业答案.docx
  8. win8系统配置服务器地址,win8系统默认服务器地址
  9. android linux 优化,【「Android」UE手游研发中,如何做好Android内存优化?】|Linux|DEX|腾讯游戏|_傻大方...
  10. python的浮点数_Python中整数和浮点数