es集群节点数和分片数关系_ES数据插入和查询流程是怎么样的?
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数据插入和查询流程是怎么样的?相关推荐
- 【ES实战】ES集群节点迁移与缩容补充说明
[ES实战]ES集群节点迁移与缩容补充说明 [ES实战]ES集群节点迁移与缩容 文章目录 [ES实战]ES集群节点迁移与缩容补充说明 1.集群的现状分析和集群的规划 2.集群健康关注点,变化关注点 3 ...
- ES集群中出现UNASSIGNED分片时的解决思路
原文:https://www.modb.pro/db/182864 引入此问题的原因,是因为在单节点的ES部署策略中,如果在设置某个ES索引的replica不为零,你会发现. 存在Unassigned ...
- es集群节点加入失败join validation on cluster state with a different cluster uuid...than local cluster uuid..
本来之前已经将es集群搭建完成了,但是不小心使用rm -rf /var/lib把文件删除了,我本来只想删除/var/lib下的一个文件夹的,结果删错了,整个集群没了,这,,,,还好集群上跑的都是一些测 ...
- es集群节点数和分片数关系_ElasticSeaerch(弹性搜索数据库)中集群、节点、副本和分片的区别...
简单总结下: 1.集群cluster: 集群顾名思义就是多个相同集群名称的es节点组合在一起.相当于一个集群就是一个班级,班级下面的学生就是节点. 如果只有一个节点在运行就称为单节点. 2.节点nod ...
- ES命令行查询es集群的状态、分片、索引
查看es集群状态 curl -XGET -uelastic -p http://172.18.35.144:9200/_cat/health?v cluster ,集群名称 status,集群状态 g ...
- 教你在Kubernetes中快速部署ES集群
摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...
- Elasticsearch-Jest 配置ES集群源码解读
文章目录 Jest Github地址 搭建源码环境 Jest配置ES集群 Jest 配置ES集群,确保应用高可用的原理探究 初始化 JestClient NodeChecker 源码分析 发起请求的过 ...
- es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路
前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...
- Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署
1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...
最新文章
- 我的世界服务器ess配置信息,[搬运贴]超详细的Ess基础插件介绍
- CBS多机器人路径规划
- 网络推广专员浅析如何在日常网络推广过程中增加网站转化率?
- 从 Hive 大规模迁移作业到 Spark 在有赞的实践
- Oracle常用命令大全(经典收藏)
- 《Essential C++》笔记之传引用(pass by reference)分析
- Java多线程学习总结(3)——Java线程的6种状态及切换
- React Native随笔 2--重要函数
- 系统集成管理师2011下半年软考透解 四
- Atitit 网盘使用法 艾提拉著 目录 1. 需要解决几个问题	2 1.1. 多关键词搜索的问题 使用every索引解决	2 1.2. 重要文具类索引使用分类索引 日志 crm类增加000前缀
- 合肥工业大学机器人足球仿真robcup作业一(python实现)附代码有注释
- 北京圣思园经典Java培训教学视频分享
- Sublime Text 3在行前插入递增数字序号的方法
- 设置Chrome新标签页为自定义地址页面
- 数学建模竞赛题目 资产清算交易策略
- 微信小程序开发报错及解决记录
- android property实现路径
- MySQL Manual
- 【翻译论文】 Supervised Parametric Classification of Aerial LiDAR Data(2004)
- 程序员,吃什么对身体好
热门文章
- 把Python函数转换成能在SQL语句中调用的函数
- Python使用UDP协议打造在线时间服务器
- Python实现中英文分词
- # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
- c语言lr分析器的设计与实现_[源码和文档分享]基于有限自动机的词法分析器构造...
- android如何让gps服务停止,android – 启动/停止GPS(或位置服务)时接收通知(通过BroadcastReceiver)...
- C语言作业完成情况dazuoye,成都信息工程学院C语言作业答案.docx
- win8系统配置服务器地址,win8系统默认服务器地址
- android linux 优化,【「Android」UE手游研发中,如何做好Android内存优化?】|Linux|DEX|腾讯游戏|_傻大方...
- python的浮点数_Python中整数和浮点数