Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ES02# Elasticsearch术语与部署架构梳理

ES02# Elasticsearch术语与部署架构梳理

作者头像
瓜农老梁
发布于 2022-04-28 00:04:51
发布于 2022-04-28 00:04:51
60500
代码可运行
举报
文章被收录于专栏:瓜农老梁瓜农老梁
运行总次数:0
代码可运行

引言

ES体系化梳理第二篇,从基本概念和术语开始,走查了集群中的节点以及其在ES集群中可扮演的角色,最后走查了常见的集群部署架构。本文主要内容有:

  • 基本概念与术语
  • 节点角色与集群状态
  • 常用集群部署架构

一、基本概念与术语

Document: 是es搜索的最小单位,被序列化成json对象存入es。

  • 文档类比关系数据库一条记录
  • 每个文档有一个唯一的ID,类比关系数据库主键ID
  • json对象由filed构成,filed类比关系数据库column

Index: 索引是文档的容器,一类文档的集合,存储在分片Shard上。

  • 索引类比关系数据库的表
  • 索引的Mapping定义文档字段类型,类比关系数据库的schema
  • 索引的Setting定义数据在分片上的分布

节点: ES实例的java进程,节点名称在启动时通过 -Enode.name指定,每个节点存储集群状态信息。

  • 集群状态包括:所有节点信息、所有的索引及Mapping和Setting信息、分片路由信息
  • 只有master节点可以修改集群状态信息
  • Data Node:保存分片数据的节点
  • Coordinating Node:负责接受客户端请求并将请求转发到合适的节点,并负责汇总结果;默认情况下每个节点都会启到Coordinating Node的职责
  • Hot&Warm Node:由不同配置的Data Node组成,主要为了降低成本,Hot节点使用高配置,Warm节点使用低配置

主分片: 在创建索引时指定主分片,解决数据水平扩容问题。

  • 类比kafka的分区,一个分片运行的Lucene的实例
  • 在创建索引的时候指定,之后修改需要Reindex
  • 分片数与节点数相关,分片数过少影响节点扩容,分片数过多影响查询性能
  • 多分片分担写压力,当分片数 > 节点数,新节点加入分片会自动分配
  • 分片过多会导致潜在性能,查询需要从多个分片上检索数据,比如:集群总分片控制几万内
  • 日志单个分片数据存储大小50G内,搜索类单个分片存储20G内,降低merge/rebalancing耗损资源

副本: 主分片的备份,解决数据高可用问题。

  • 类比kafka的副本,副本分片可以动态调整
  • 增加副本数除了解决高可用外,可以提高读取性能,同时增加存储成本

二、节点角色与集群状态

1.节点角色

Node官方文档:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-node.html

Elasticsearch7.9通过node.roles配置节点角色,在配置文件elasticsearch.yml设置

角色选项

说明

master

node.roles: [ master ]:拥有选举权和被选举权

master, voting_only

node.roles: [ master, voting_only ]:只有选举权没有被选举权

data

node.roles: [ data ]:处理与数据相关的操作CRUD、搜索、聚合

data_content

node.roles: [ data_content ]:冷热分层架构,通用节点,CRUD、搜索、聚合

data_hot

node.roles: [ data_hot ]:冷热分层架构,hot节点承担快速读写操作,可以配置为SSD盘

data_warm

node.roles: [ data_warm ]:冷热分层架构,warm节点索引不定期更新,查询频率比热节点低,配置低于热节点

data_cold

node.roles: [ data_cold ]:冷热分层架构,cold节点只存只读索引,低配置节点

ingest

node.roles: [ ingest ]:ingest节点用于对写入和查询的数据进行预处理

Coordinating only node

node.roles: [ ]:协调节点不承担master职责、不保存数据、不预处理;负责接受请求、分发请求、汇总结果

备注:生产环境建议一个节点设置单一角色,有利于更好的性能和根据角色定制化配置。

2.集群状态

衡量集群健康与否的三种状态:

Green:主分片与副本正常分配

Yellow:主分片全部正常分配,有副本分片未正常分配

Red:有主分片未能正常分配

查看集群状况

官方API文档

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// index API
https://www.elastic.co/guide/en/elasticsearch/reference/8.1/indices.html
// Get index API
https://www.elastic.co/guide/en/elasticsearch/reference/8.1/indices-get-index.html
// cat API
https://www.elastic.co/guide/en/elasticsearch/reference/8.1/cat.html

查询document总数

三、常用集群部署架构

1.各角色配置

生产环境架构中每个节点配置单一职责,具体为Master、Data、Ingest、Coordinate的一个,有利于每个角色可以使用不同的机器配置。

  • Master 负责集群状态信息管理
    • 生产环境通常配置3台
    • 低配置(低CPU核数、小内存、低磁盘)
  • Data节点负责处理与数据相关的操作
    • 高配置(高CPU核数、大内存、SSD盘)
  • Ingest节点负责写入和查询的数据进行预处理
    • 中配置(高CPU核数、中内存、低磁盘)
  • Coordinate节点,通常在es大集群中配置,降低Master和Data Nodes的负载,负责接受请求、分发请求、汇总结果
    • 应对客户的未知查询请求,深度聚合可能导致OOM
    • 中高配置(中高CPU核数、中高内存、低磁盘)

2.集群部署架构

2.1 水平扩展

备注:集群中存在大量复杂的查询时,通过增加协作节点提升查询性能。

2.2 读写分离

备注:通过配置不同的读写负载均衡,分离读写请求,读请求路由到协作节点,写请求路由到Ingest节点,协作节点和Ingest节点可以水平扩展。

2.3 冷热分离

备注:冷热分离架构,Hot节点通过高配置承担更多的读写压力,冷节点承担一定的读请求,常见于日志类使用场景。

2.4 混合部署

备注:ES集群由data节点和master节点构成,常见于非生产环境以及线上读写均无压力的场景。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜农老梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
干货 | Elasticsearch 8.X 节点角色划分深入详解
如果你的 Elasticsearch 集群是 7.9 之前的版本,在配置节点的时候,只会涉及节点类型的概念。我相信大家会对下面的概念比较熟悉:
铭毅天下
2022/05/23
5.2K0
干货 | Elasticsearch 8.X 节点角色划分深入详解
Elasticsearch原理---面试系列文章一
实时分析等场景。其强大的分布式架构和灵活的索引机制,使得它能够高效处理大规模数据集。本文将深入探讨Elasticsearch中的集群、节点、索引、分片与副本的原理及其工作机制。
小马哥学JAVA
2024/09/20
990
探究 | Elasticsearch集群规模和容量规划的底层逻辑
问题 1:请问下大家是如何评估集群的规模?比如数据量达到百万,千万,亿万,分别需要什么级别的集群,这要怎么评估?
铭毅天下
2019/12/17
4.3K0
探究 | Elasticsearch集群规模和容量规划的底层逻辑
ES8.8集群与Kibana部署
es可以使用二进制、docker、k8s、rpm方式部署,此处以rpm方式为例。相较于二进制部署,省去了繁琐的用户创建、证书生成、密码设置、启动脚本配置等操作,简化部署流程,可以将更多的精力用于es的使用而不是部署上面。如果资源有限,想体验elk相关功能,可参考文档:https://www.cuiliangblog.cn/detail/section/117075458,后续也会发布docker模式下elk自定义日志采集文章。
章工运维
2024/03/13
9790
ES8.8集群与Kibana部署
Elasticsearch 可搜索快照技术原理及最佳实践
Elasticsearch于7.10版本推出可搜索快照功能,但是7.10版本的可搜索快照技术还不够成熟,随着7.14版本的发布,可搜索快照技术才真正能够大规模用于生产实践中。本文将基于ES 7.14.2版本,继续从原理和实践两个角度向大家介绍可搜索快照技术。
腾讯云大数据
2021/12/29
1.4K1
Elasticsearch 可搜索快照技术原理及最佳实践
学好Elasticsearch系列-核心概念
公司使用Elasticsearch的场景还是挺多的,打算开个新的坑,写一个关于Elasticsearch的系列,这是第一章。
BookSea
2023/07/26
2460
学好Elasticsearch系列-核心概念
Elasticsearch7.14版本集群架构升级之冷热集群
具备主节点角色,拥有控制集群的权限。当节点被授予该角色时,则表明该节点有资格被选举为主节点。
空洞的盒子
2024/07/24
3451
让Elasticsearch飞起来!百亿级实时查询优化实战
经过对 Elasticsearch 多方调研和超过几百亿条数据的插入和聚合查询的验证之后,我们总结出以下几种能够有效提升性能和解决这一问题的方案:
猿天地
2019/06/18
1.7K0
Elasticsearch ILM 索引生命周期管理常见坑及避坑指南
之前的博文和视频都讲过 ILM 索引生命周期管理。但从近期的反馈和我自己的实战经验看,依然会有很多坑。
铭毅天下
2022/02/09
2.3K0
Elasticsearch ILM 索引生命周期管理常见坑及避坑指南
一篇文章带你搞定 ElasticSearch 术语
这篇文章主要介绍 ElasticSearch 的基本概念,学习文档、索引、集群、节点、分片等概念,同时会将 ElasticSearch 和关系型数据库做简单的类比,还会简单介绍 REST API 的使用用法。
武培轩
2020/03/02
1.3K0
Elasticsearch Data tiers数据分层介绍与展望
最近Elasticsearch 7.10版本发布,该版本除了有Searchable Snapshots可搜索快照这个重磅特性之外,还有Data tiers数据层功能。数据层实际上就是先定义好数据节点的角色,比如热节点、温节点等,然后可以在ILM索引生命周期管理中实现索引由热节点迁移到温节点,再迁移到冷节点,达到数据冷热分离的目的。
bellen
2020/12/11
1.7K0
Elasticsearch Data tiers数据分层介绍与展望
干货 | Elasticsearch 索引生命周期管理 ILM 实战指南
关于人生,有人这么说:“人,生来一个人,死去一个人,所以,人生就是一个人生老病死的简称。”
铭毅天下
2021/06/25
7.2K1
干货 | Elasticsearch 索引生命周期管理 ILM 实战指南
ES04# Elasticsearch集群健康与指标梳理
对于Elasticsearch运维管理员来讲集群平稳运行非常重要,Elasticsearch提供了health命令和stats统计指标来说明集群是否正常。这两个命令返回大量的指标信息,本文就一探究竟拨开主要指标的含义,文章主要内容有:
瓜农老梁
2022/04/28
8940
Elasticsearch索引和检索优化与压测监控总结
先来看看es的整体架构图,上面有多个重要模块,今天主要写在lucene上面的index模块与search模块的优化经历,力求简要写出改变了configuration之后,会给es cluster带来什么样的影响。
王知无-import_bigdata
2020/06/11
1.4K0
Kubernetes 部署冷热架构 Elasticsearch「Helm 部署案例」
上一篇 我们介绍了 Elasticsearch ILM 索引生命周期管理。使用 ILM 的前提是具有冷热架构的 ES 集群,本篇就来介绍如何在 Kubernetes 部署这样的集群。
sir5kong
2023/07/26
9420
一起学Elasticsearch系列-核心概念
Elasticsearch是一个开源的搜索和分析引擎,支持近实时的大数据存储、搜索和分析。它基于Apache Lucene项目,提供全文搜索及能力强大的分布式多用户搜索引擎,同时配备RESTful web接口。它不仅能执行复杂查询,还能高效处理复杂的数据分析。
BookSea
2023/11/06
3630
一起学Elasticsearch系列-核心概念
Elasticsearch可搜索快照技术原理及最佳实践
Elasticsearch于7.10版本推出可搜索快照功能,但是7.10版本的可搜索快照技术还不够成熟,随着7.14版本的发布,可搜索快照技术才真正能够大规模用于生产实践中。本文将基于ES 7.14.2版本,继续从原理和实践两个角度向大家介绍可搜索快照技术的。
吴容
2021/11/27
2.1K3
Elasticsearch可搜索快照技术原理及最佳实践
线上ES集群提高读写能力的大致方案
业务在使用ES集群读取ES数据,如果同时向ES集群写任务时,会遇到RT涨的情况,会出现一些抖动,尤其是在计算框架大量增加并发度像ES集群写的情况下会出现抖动,目前的话是大数据计算集群减少并发写。以后还是期望增加并发度,加快写入速度,预期会对ES集群读性能带来挑战
house.zhang
2021/10/12
1.5K0
【Elasticsearch】2. 基本概念
文档(document) elasticseach 是面向文档的,文档时所有可搜索数据的最小单元 日志文件中的日志项 一部电影的具体信息等 mp3中的一首歌 文档会被序列化成json格式,保存在es中 json对象由字段组成 每个字段都有对应的字段类型 每个文档都有一个unique id 可以自己指定id es自动生成 索引(index) index - 索引是文档的容器,是一类文档的集合 index体现了逻辑空间的概念,每个索引都有自己的mapping定义,用于定义包涵文档的字段名和字段类型 shard体
历久尝新
2020/12/15
4170
【Elasticsearch】2. 基本概念
Elasticsearch容量规划-干货
当客户或者业务咨询您一套Elasticsearch该如何搭建的时候,您脑海中闪过的第一个想法是啥?业务数据量有多大,eps峰值是多少,业务场景是啥....本文将详细介绍从下到上改如何规划一套Elasticsearch集群。
雨夜v1
2022/03/19
3.5K0
Elasticsearch容量规划-干货
推荐阅读
相关推荐
干货 | Elasticsearch 8.X 节点角色划分深入详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验