6.X elasticsearch实战学习笔记_索引管理02

收缩(Shrink) 索引

  1. shrink 索引API 将现有索引缩小为具有较少主分片的新索引。目标索引的主分片数必须是源索引分片数的一个因子。缩小前,索引中每个分片副本必须存在同一个节点上。例:8个主分片的索引可以缩小为4个、2个或1个主分片,15个主分片可缩为5、3、1个主分片。
  2. 收缩的工作流程
    a. 创建一个新的目标索引,其定义与源索引相同,但主分片数少
    b. 硬链接 源索引的段到目标索引
    c. 恢复目标索引,类似于关闭的索引重新被打开
  3. 收缩索引的准备工作
    a. 索引必须标记为只读
    b. 索引中的每个分片的拷贝必须重定位到同一个节点,并且状态为green
    在这里插入图片描述
    ps:上图实现了以上两条件
  • 图中第一个键值对参数:强制将每个分片的拷贝重定位到shrink_node_name的节点
  • 图中第二个键值对参数:阻止对该索引的写入操作,允许改元数据,如删除索引
  • 重定位索引较耗时,可使用_cat recovery API跟踪进度,也可使用cluster health API的wait_for_no_relocating_shards参数,等待所有分片都被分配
  1. 收缩索引
    在这里插入图片描述 (1)第一个参数: 清除从源索引拷贝的分配请求
    (2)第二个参数:清除从源索引拷贝的写阻塞
    在这里插入图片描述

  2. 收缩索引条件
    (1)目标索引不存在
    (2)源索引主分片数比目标索引多
    (3)目标索引的主分片数是源索引主分片数的因子
    (4)处理收缩过程的节点必须具有足够的磁盘空间,可容纳现有索引的第二个副本

  • _shrink的API可为目标索引接受settings和aliases参数
  • 默认情况,源索引上的索引设置不会在收缩操作期间复制,除了index.analysis,index.similarity,index.sort设置外
  1. 监控收缩进程
    (1)可通过_cat recovery API监控,或设置cluster health API的wait_for_status参数为yellow(等待所有主分片被分配)
    (2)分配分片前,只要目标索引已添加到集群状态,_shrink API就会返回。若因为某原因,无法在收缩节点上分配目标索引,则其主分片保持未分配状态,直到可在该节点上分配为止
    (3)一旦主分片分配后,将进入状态初始化,并开始收缩过程。收缩完成后,分片变为活动状态。此时,es尝试分配所有副本,并可能决定将主分片重定位到另一个节点。

  2. Wait For Active Shards
    收缩过程会创建一个新的索引来缩小分片,在创建索引时,活跃分片等待的设置可适用于收缩索引的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值