Elasticsearch 索引模板、生命周期策略、节点角色

简介

  • 索引模板可以帮助简化创建和二次配置索引的过程,让我们更高效地管理索引的配置和映射。

  • 索引生命周期策略是一项有意义的功能。它通常用于管理索引和分片的热(hot)、温(warm)和冷(cold)数据,以及定期删除过期的数据,以确保Elasticsearch的健康运行。

  • Elasticsearch集群中,不同节点扮演着不同的角色(热(hot)、温(warm)和冷(cold)主节点),共同构成了强大的搜索和分析引擎。

ELK系列文章: ELK

此文档基于 8.0版本编写。

索引模板 - Template

索引可使用预定义的模板进行创建,这个模板称作Index templates。模板设置包括设置和映射,通过模式匹配的方式使得多个索引重用一个模板。

索引模式

用于匹配创建的索引。

索引设置

settings主要作用于index的一些相关配置信息,如分片数、副本数,tranlog同步条件、refresh等。

官方文档

下面就是把副本数量指定为2,默认副本数量为1。

{"index": {"number_of_replicas": "2"}
}
  • index.codec 默认使用 LZ4 压缩存储的数 压缩,但可以将其设置为使用 DEFLATE 进行更高的压缩比,以较慢的存储字段性能为代价。

  • index.number_of_replicas 每个主分片的副本数。默认值为 1。

  • index.number_of_shards 索引应具有的主分片数。默认值为1 。此设置只能在创建索引时设置。不能在索引上的更改它。

索引映射

mappings主要是一些说明信息,大致又分为_all、_source、prpperties这三部分:

  1. _all:主要指的是AllField字段,我们可以将一个或多个都包含进来,在进行检索时无需指定字段的情况下检索多个字段。设置

  2. _source:主要指的是SourceField字段,Source可以理解为ES除了将数据保存在索引文件中,另外还有一份源数据。_source字段在我们进行检索时相当重要,如果在{“enabled” : false}情况下默认检索只会返回ID, 你需要通过Fields字段去到索引中去取数据,效率不是很高。但是enabled设置为true时,索引会比较大,这时可以通过Compress进行压缩和inclueds、excludes来在字段级别上进行一些限制,自定义哪些字段允许存储。

  3. properties:这是最重要的步骤,主要针对索引结构和字段级别上的一些设置。“_all” : {“enabled” : true}

咱们通常在elasticsearch中 post mapping信息,每重新创建索引便到设置mapping,分片,副本信息。非常繁琐。强烈建议大家通过设置模板方式设置索引信息。设置索引名,通过正则匹配的方式匹配到相应的模板。

直接修改mapping的优先级>索引模板。索引匹配了多个模板,当属性等配置出现不一致的,以order的最大值为准,order默认值为0

创建过程 - Kibana

选择 Stack Management > 数据 > 索引管理 > 索引模板 > 创建模板

配置名称和索引模式

填写名称、和索引模式和开启允许自动创建索引。点击下一步,跳过组件模板。

注意索引模式需要匹配要创建的索引名称。

索引设置

配置副本数量为2,点击下一步到复查模板。最后点击创建模板。

最终索引模式匹配的创建模板,都会套用模板配置。

索引生命周期

索引生命周期可以手动关联模板,也可以通过索引模板自动关联。

创建

选择 Stack Management > 数据 > 索引管理 > 索引生命周期策略 > 点击创建策略。

创建策略,配置热阶段 180天后转换为冷阶段,并把副本数量改为0。再过365天后删除。

冷阶段配置

配置副本分片重定为0,并配置此阶段后删除。

删除阶段

配置冷阶段365天后删除索引。

关联索引模板

在这里插入图片描述

集群角色

node.roles: [ data, master ]
# 配置文件示例

主节点(Master-eligible node

  • 主节点的核心用途:集群层面的管理,例如创建或删除索引、跟踪哪些节点是集群的一部分,以及决定将哪些分片分配给哪些节点。主节点的path.data 用于存储集群元数据信息,不可缺少。

  • 主节点的重要性:拥有稳定的主节点对于集群健康非常重要。

和早期版本不同,节点角色划分后,主节点又被细分为:候选主节点和仅投票主节点。

  • 主节点存储数据:集群中每个索引的索引元数据,集群层面的元数据。

专用候选主节点(Dedicated master-eligible node

如果集群规模大、节点多之后,有必要独立设置专用候选主节点。

专用候选主节点配置:

node.roles: [ master ]

仅投票主节点(Voting-only master-eligible node

用途:仅投票,不会被选为主节点。

硬件配置可以较专用候选主节点低一些。

仅投票主节点配置:

node.roles: [ master, voting_only ]

注意:master 在集群中必不可少。

关于集群主节点配置,要强调说明如下:

  • 高可用性 (HA) 集群需要至少三个符合主节点资格的节点;其中至少两个不是仅投票节点。

  • 即使其中一个节点发生故障,这样的集群也将能够选举一个主节点。

数据节点(Data node

数据节点用途:数据落地存储、数据增、删、改、查、搜索、聚合操作等处理操作。

数据节点硬件配置:CPU 要求高、内存要求高、磁盘要求高。

专属数据节点好处:主节点和数据节点分离,各司其职。

数据节点存储内容:

  • 分片数据。

  • 每个分片对应的元数据。

  • 集群层面的元数据,如:setting 和 索引模板。

拥有专用数据节点的主要好处是主角色和数据角色的分离。

数据节点的配置:

node.roles: [ data ]

用途:运行转换并处理转换 API 请求。这块,咱们之前文章没有涉及。

在 Elastic 多层(tires)冷热集群架构体系下,数据节点又可以细分为:

  • 内容数据节点(Content data node)

  • 热数据节点(Hot data node)

  • 温数据节点(Warm data node)

  • 冷数据节点(Cold data node)

  • 冷冻数据节点(Frozen data node)

内容数据节点

用途:处理写入和查询负载,具有较长的数据保留要求。

建议至少设置一个副本,以保证数据的高可用。

不属于数据流的系统索引或其他索引会自动分配到内容数据节点。

node.roles: [ data_content ]

热数据节点

用途:保存最近、最常访问的时序数据。

推荐使用:SSD 磁盘,至少设置一个副本。

node.roles: [ data_hot ]
****

温数据节点

用途:保存访问频次低且很少更新的时序数据。

node.roles: [ data_warm ]

冷数据节点

用途:保存不经常访问且通常不更新的时序数据。可存储可搜索快照。

node.roles: [ data_cold ]

冷冻数据节点

用途:保存很少访问且从不更新的时序数据。

node.roles: [ data_frozen ]

在冷热集群架构时序数据 ILM 索引生命周期管理的实战演练环节,验证发现:

在配置节点角色时,data_hot、data_warm、data_cold 要和 data_content 要一起配置。且 data_hot、data_warm、data_cold 不要和原有的data 节点一起配置了。

如果仅data_hot 不设置 data_content 会导致集群数据写入后无法落地。

我的理解:data_hot, data_warm, data_cold 是标识性的节点,实际落地存储还得靠 data_content 角色。

数据预处理节点(ingest node

用途:执行由预处理管道组成的预处理任务。

关于啥是数据的预处理?之前有多篇文章解读过:

Elasticsearch 预处理没有奇技淫巧,请先用好这一招!

Elasticsearch的ETL利器——Ingest节点

node.roles: [ ingest ]

仅协调节点(Coordinating only node

用途:类似智能负载均衡器,负责:路由分发请求、聚集搜索或聚合结果。

注意事项:在一个集群中添加太多的仅协调节点会增加整个集群的负担,因为当选的主节点必须等待来自每个节点的集群状态更新的确认。

node.roles: [ ]# 空配置

空即是“色”,不对,这里空即是“仅协调节点”。

远程节点(Remote-eligible node

用途:跨集群检索或跨集群复制。

node.roles: [ remote_cluster_client ]
3.6 机器学习节点(Machine learning node

用途:机器学习,系收费功能。

node.roles: [ ml, remote_cluster_client]
3.7 转换节点(Transform node

用途:运行转换并处理转换 API 请求。这块,咱们之前文章没有涉及。

推荐阅读:

https://www.elastic.co/guide/en/elasticsearch/reference/current/transform-overview.html

node.roles: [ transform, remote_cluster_client ]

角色资源耗费

参考

https://chenzhonzhou.github.io/2021/01/31/elasticsearch-suo-yin-mo-ban-template/

https://cloud.tencent.com/developer/article/2009025

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

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

相关文章

科技类媒体邀约资源有哪些?科技公司做活动如何做好宣传?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 科技类媒体邀约资源包括了各类专注于科技报道的平台和渠道,科技公司可以通过多样化的宣传策略来提升活动的影响力。 科技类媒体资源的邀约通常涉及多种不同的平台和形式&…

基于nodejs+vue高校自习室预约系统的设计与实现python-flask-django-php

本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于高校自习室预约这一方…

命令模式(请求与具体实现解耦)

目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者(Invoker)和命令执行者(receiver),使得 Invoker 不再直接引用 receiver,而是依赖于…

msvcp100.dll是什么东西?电脑msvcp100.dll丢失的六种解决方法

最近,我在电脑上打开一款软件时,遇到了一个问题:找不到msvcp100.dll丢失问题,为了解决这个问题,我进行了深入的学习和研究,并在此分享msvcp100.dll丢失的解决方法。 一,msvcp100.dll是什么&…

Visual Studio QT6 工程引入组件模块,例如:QtXml

QT 工程引入 QtXml QT 版本 6.6.1 Visual Studio 版本 Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5 打开 Visual Studio 项目工程选择 工具栏 - 扩展 - QT VS Tools -Qt Project Settings 勾选 xml 后点击确定 点击应用即可 注意:配置环…

Apache Dolphinscheduler - 执行工作流却没有创建任务实例分析

问题描述 最近碰到一个奇怪的问题,DS 创建工作流成功,但是一旦执行,始终在转,而且没有任何执行的痕迹,后来到数据库一查发现压根没创建任务实例。 我们都知道一个工作流里面可以挂多个任务节点,执行工作流…

Python 全栈体系【四阶】(十九)

第五章 深度学习 一、基本理论 4. 神经网络的改进 4.3 循环神经网络 4.3.1 标准 CNN 模型的不足 假设数据之间是独立的。标准 CNN 假设数据之间是独立的,所以在处理前后依赖、序列问题(如语音、文本、视频)时就显得力不从心。这一类数据…

iOS - Runtime-isa详解(位域、union(共用体)、位运算)

文章目录 iOS - Runtime-isa详解(位域、union(共用体)、位运算)前言1. 位域介绍1.1 思路1.2 示例 - 结构体1.3 示例 - union(共用体)1.3.1 说明 1.4 结构体 对比 union(共用体) 2. a…

【前端】代码案例

1.猜数字 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>猜数字</title> </head> <…

idea运行项目没反应【debug和run灰色】

解决方法 File->Settings->Plugins->groovy 将groovy勾选的√去掉&#xff0c;保存再重新启动idea即可。 啊啊啊码

【微服务】认识Dubbo+基本环境搭建

认识Dubbo Dubbo是阿里巴巴公司开源的一个高性能、轻量级的WEB和 RPC框架&#xff0c;可以和Spring框架无缝集成。Dubbo为构建企业级微服务提供了三大核心能力&#xff1a; 服务自动注册和发现、面向接口的 远程方法调用&#xff0c; 智能容错和负载均衡官网&#xff1a;https…

RK3568平台 iperf3测试网络性能

一.iperf3简介 iperf是一款开源的网络性能测试工具&#xff0c;主要用于测量TCP和UDP带宽性能。它可以在不同的操作系统上运行&#xff0c;包括Windows、Linux、macOS等。iperf具有简单易用、功能强大、高度可配置等特点&#xff0c;广泛应用于网络性能测试、网络故障诊断和网…

SpringBoot集成Solr全文检索

SrpingBoot 集成 Solr 实现全文检索 一、核心路线 使用 Docker 镜像部署 Solr 8.11.3 版本服务使用 ik 分词器用于处理中文分词使用 spring-boot-starter-data-solr 实现增删改查配置用户名密码认证使用 poi 和 pdfbox 组件进行文本内容读取文章最上方有源码和 ik 分词器资源…

【晴问算法】入门篇—字符串处理—单词数

题目描述 给定一堆用空格隔开的英文单词&#xff0c;统计单词个数。输入描述 一堆英文单词&#xff0c;每个单词不超过10个字符&#xff0c;且仅由大小写字母组成;每两个单词之间用一个空格隔开&#xff0c;整个字符串的长度不超过1000。输出描述 输出一个整数&#xff0c;表示…

视频汇聚平台EasyCVR启用图形验证码之后调用login接口的操作方法

视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台可以将区域内所有部署的监控设备进行统一接入与集中汇聚管理&#xff0c;实现对监控区域的实时高清视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等&#xff0c;在监控中心…

【网络爬虫】(2) requests模块,案例:网络图片爬取,附Python代码

1. 基本原理 1.1 requests 模块 requests 是 Python 中一个非常流行的 HTTP 客户端库&#xff0c;用于发送所有的 HTTP 请求类型。它基于 urllib&#xff0c;但比 urllib 更易用。 中文文档地址&#xff1a;Requests: 让 HTTP 服务人类 — Requests 2.18.1 文档 &#xff0…

OpenHarmony 源码解析之SystemUi—Statusbar(TS)

作者&#xff1a;董伟 简介 SystemUI应用是OpenHarmony中预置的系统应用&#xff0c;为用户提供系统相关信息展示及交互界面&#xff0c;包括系统状态、系统提示、系统提醒等&#xff0c;例如系统时间、电量信息。 本文主要分析batterycomponent、clockcomponent、wificompo…

[Windows常用软件] word 复制粘贴报错修复

背景 在word 内 ctrlv 会报这个错。 microsoft visual basic MathPage.Wll 运行时错误 网上查了一下是 mathtype 导致的&#xff0c;应该是我之前卸载 mathtype 没有卸载干净导致的。 解决方案 参考知乎里面的一个回答解决的&#xff1a;https://www.zhihu.com/question/37…

高防服务器、高防IP、高防CDN的工作原理是什么

高防IP高防CDN我们先科普一下是什么是高防。“高防”&#xff0c;顾名思义&#xff0c;就犹如网络上加了类似像盾牌一样很高的防御&#xff0c;主要是指IDC领域的IDC机房或者线路有防御DDOS能力。 高防服务器主要是比普通服务器多了防御服务&#xff0c;一般都是在机房出口架设…

网络七层模型之网络层:理解网络通信的架构(三)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…