【Elasticsearch】索引生命周期管理操作之Allocate(分配)

在 Elasticsearch 中,Allocate(分配)是一个与索引生命周期管理(Index Lifecycle Management,ILM)相关的重要操作,用于控制索引分片在集群中的分配策略。它允许用户根据不同的阶段(如 Warm、Cold)动态调整索引的副本数量和分片的分配规则,以优化性能、降低成本或满足特定的存储需求。

1.Allocate 的作用

Allocate 操作的主要功能包括:

• 调整副本数量:可以根据需要增加或减少索引的副本数量,以提高数据的冗余性或节省资源。

• 控制分片分配:通过指定分片分配的规则,将索引分配到特定的节点或节点组,以优化性能、降低成本或满足存储需求。

• 支持索引生命周期管理:在索引的生命周期中,不同阶段(如 Warm、Cold)可能需要不同的资源分配策略,Allocate 操作允许动态调整这些策略。

2.Allocate 的使用场景

Allocate 操作通常用于以下场景:

• 数据迁移:将索引从热节点(高性能节点)迁移到温节点或冷节点(低成本存储节点)。

• 资源优化:在集群资源有限的情况下,通过减少副本数量或调整分片分配,优化资源利用率。

• 故障恢复:在节点故障时,通过调整分片分配规则,确保数据的可用性和冗余性。

3.Allocate 的配置参数

在 ILM 策略中,Allocate 操作可以通过以下参数进行配置:

`number_of_replicas`

• 类型:整数

• 作用:指定索引的副本数量。

• 示例:`"number_of_replicas": 2`表示为索引分配两个副本。

`total_shards_per_node`

• 类型:整数

• 作用:限制单个节点上索引的分片数量。

• 示例:`"total_shards_per_node": 200`表示每个节点上最多分配 200 个分片。值为`-1`表示无限制。

`include`

• 类型:对象

• 作用:将索引分配到具有指定属性的节点。

• 示例:`"include": {"box_type": "hot,warm"}`表示将索引分配到属性为`hot`或`warm`的节点。

`exclude`

• 类型:对象

• 作用:将索引分配到不具有指定属性的节点。

• 示例:`"exclude": {"box_type": "cold"}`表示将索引分配到属性不是`cold`的节点。

`require`

• 类型:对象

• 作用:将索引分配到必须具有指定属性的节点。

• 示例:`"require": {"box_type": "cold", "storage": "high"}`表示将索引分配到属性为`cold`且存储类型为`high`的节点。

4.Allocate 的阶段限制

Allocate 操作仅允许在以下阶段使用:

• Warm 阶段:通常用于将索引从热节点迁移到温节点,减少副本数量以节省资源。

• Cold 阶段:通常用于将索引迁移到冷节点,进一步减少副本数量或优化存储成本。

注意:Allocate 操作不支持在 Hot 阶段使用,因为 Hot 阶段通常需要高性能和高可用性,不适合动态调整分片分配。

5.示例

以下是一些常见的 Allocate 配置示例:

示例 1:调整副本数量并限制分片数量

```json

PUT _ilm/policy/my_policy

{

  "policy": {

    "phases": {

      "warm": {

        "actions": {

          "allocate": {

            "number_of_replicas": 2,

            "total_shards_per_node": 200

          }

        }

      }

    }

  }

}

```

• 作用:在 Warm 阶段,将索引的副本数量设置为 2,并限制每个节点上的分片数量不超过 200。

示例 2:基于自定义属性分配索引

```json

PUT _ilm/policy/my_policy

{

  "policy": {

    "phases": {

      "warm": {

        "actions": {

          "allocate": {

            "include": {

              "box_type": "hot,warm"

            }

          }

        }

      }

    }

  }

}

```

• 作用:将索引分配到属性为`hot`或`warm`的节点。

示例 3:基于多个属性分配索引

```json

PUT _ilm/policy/my_policy

{

  "policy": {

    "phases": {

      "cold": {

        "actions": {

          "allocate": {

            "require": {

              "box_type": "cold",

              "storage": "high"

            }

          }

        }

      }

    }

  }

}

```

• 作用:在 Cold 阶段,将索引分配到属性为`cold`且存储类型为`high`的节点。

示例 4:更新副本数量并指定节点

```json

PUT _ilm/policy/my_policy

{

  "policy": {

    "phases": {

      "warm": {

        "actions": {

          "allocate": {

            "number_of_replicas": 1,

            "require": {

              "box_type": "cold"

            }

          }

        }

      }

    }

  }

}

```

• 作用:在 Warm 阶段,将索引的副本数量设置为 1,并分配到属性为`cold`的节点。

6.总结

Allocate 是 Elasticsearch 中用于优化索引分片分配的重要操作。通过灵活配置副本数量和分片分配规则,用户可以根据索引的生命周期阶段(如 Warm、Cold)动态调整资源分配,从而实现性能优化、成本控制和数据管理的目标。

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

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

相关文章

基于深度学习的网络摄像头图像实时分类实践:从理论到完整实现

引言:智能视觉感知的新可能 在人工智能技术蓬勃发展的今天,实时图像分类作为计算机视觉的基础任务之一,正在深刻改变着我们的生活。从智能手机的人脸解锁到无人超市的自动结算系统,从工业质检的缺陷检测到医疗影像的辅助诊断&…

Linux-计算机网络.udp

1.收发函数: read()/write () ///通用文件读写,可以操作套接字。 recv(,0) /send(,0) ///TCP 常用套机字读写 recvfrom()/sendto() ///UDP 常用套接字读写 ssize_t recv(int sockfd, void *buf, size_t len, …

如何安装VM虚拟机

安装 VMware 附官方下载链接(VM 17 pro):https://download3.vmware.com/software/WKST-1701-WIN/VMware-workstation-full-17.0.1-21139696.exe 打开下载好的VMware Workstation 17 Pro安装包; 点击下一步; 勾选我接…

js的简单介绍

一.javascript(是什么) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 作用 网页特效(监听客户的一些行为让网页做出对应的反馈)表单验证(针对表格数据的合法性进行判断)数据交互(获取后台的数据&#xf…

绕过 RAG 实时检索瓶颈,缓存增强生成(CAG)如何助力性能突破?

编者按: 你是否曾经遇到过这样的困扰:在开发基于 RAG 的应用时,实时检索的延迟让用户体验大打折扣?或者在处理复杂查询时,检索结果的不准确导致回答质量不尽如人意? 在当前大语言模型应用大规模落地的背景下…

【Java SE】面向对象编程(基础)

面向对象编程(基础) 目录 1.类与对象的关系 2.对象在内存中的存在形式 2.2 注意事项(1) 2.3 注意事项(2) 3.对象的创建方式 4.变量 4.1 成员变量 4.1.1 语法格式 4.1.2 说明 4.2 局部变量 4.2.1…

excel 斜向拆分单元格

右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后,你可以开始输入文字。 需要注意的是,文字并不会自动分成上下两行。 为了达到你期望的效果,你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…

LeetCode 21. 合并两个有序链表(Python)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输出:[] 示例 3: 输…

Linux下安装VS Code

Centos 7 https://blog.csdn.net/weixin_63790642/article/details/132927888 安装存储库 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc密钥 sudo sh -c echo -e "[code]\nnameVisual Studio Code\nbaseurlhttps://packages.microsoft.com/yum…

【软考-架构】2.1、操作系统概述-进程管理-同步互斥

✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 操作系统知识操作系统概述进程组成和状态💯考试真题前趋图进程资源图💯考试真题问题1问题2 ✨【重点】进程同步与互斥✨💯考试真题问题…

养老小程序方案详解居家养老小程序系统

养老小程序,上门居家养老小程序,用户端护工端小程序,管理后台。php开发语言,可源码搭建,二次开发或者定制开发。 一 用户端:小程序 核心功能模块:用户完善个人健康档案,在线选择服…

基于NI USRP 硬件的下一代O-RAN研究测试台​

目录 基于NI SDR硬件的下一代O-RAN研究测试台​挑战:解决方案: 基于NI SDR硬件的下一代O-RAN研究测试台​ “OAIC提供了一个开放平台(包括软件架构、库和工具集),用于对基于AI的无线接入网(RAN)控制器进行原型开发和测…

磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)

背景: 最近往数据库里存的东西有点多,磁盘不够用 查看磁盘使用情况 df -h /dev/sda5(根目录 /) 已使用 92% 咱们来开源节流 目录 背景: 一、开源 二、节流 1.查找 大于 500MB 的文件: 1. Snap 缓存…

WP 高级摘要插件:助力 WordPress 文章摘要精准自定义显示

wordpress插件介绍 “WP高级摘要插件”功能丰富,它允许用户在WordPress后台自定义文章摘要。 可设置摘要长度,灵活调整展示字数;设定摘要最后的显示字符, 如常用的省略号等以提示内容未完整展示;指定允许在摘要中显示…

健康医疗大数据——医疗影像

一、 项目概述 1.1 项目概述 1.2 项目框架 1.3 项目环境 1.4 项目需求 二、项目调试与运行 2.1需求分析 2.2具体实现 三、项目总结 项目概述 项目概述 本项目旨在应用大数据技术于医疗影像领域,通过实训培养团队成员对医疗大数据处理和分析的实际…

C# OnnxRuntime部署DAMO-YOLO人头检测

目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name:input tensor:Floa…

VPC2-多域攻击-tomcat渗透-通达oa-域控提权-密码喷射-委派攻击-数据库提权

下载链接: https://pan.baidu.com/s/1nUYj6G9ouj6BcumDgoDaGg 提取码: ejbn jishu域 windows 2008 tomcat渗透 访问发现tomcat 点击manage app 尝试弱口令进入,发现tomcat/tomcat成功进入 用哥斯拉生成后门 然后建立一个文件夹,把它放进去,把它改名…

Linux知识-第一天

Linux的目录机构为一个树型结构 其没有盘符这个概念,只有一个根目录,所有文件均在其之下 在Linux系统中,路径之间的层级关系 使用 / 开头表示根目录,后面的表示层级关系 Linux命令入门 Linux命令基础 Linux命令通用格式 comman…

【蓝桥杯单片机】第十二届省赛

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…

FPGA开发,使用Deepseek V3还是R1(7):以“FPGA的整体设计框架”为例

以下都是Deepseek生成的答案 FPGA开发,使用Deepseek V3还是R1(1):应用场景 FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别 FPGA开发,使用Deepseek V3还是R1&#x…