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

拆分索引

  1. 拆分索引的API可将现有索引拆分为新索引,每个原始的主分片在新索引中被拆分成2个或更多的主分片
  2. _split API 要求在创建源索引必须指定number_of_routing_shards,【7.0中删除该要求】
  3. 索引可被拆分的倍数(及每个原始分片可拆的分片数)由index.number_of_routing_shards决定。路由分片的数量指定内部使用的散列空间,便于使用一致散列在分片中分发文档。
  4. 拆分索引的工作流程
    1. 创建一个新的目标索引,定义与源索引相同,分片数比其主分片数大
    1. 将源索引连接到目标索引。
    1. 创建low level的文件后,所有的文档再次进行hash处理,以删除属于不同分片的文档。
    1. 恢复目标索引,就好像将关闭的索引重新打开
  1. 拆分索引的准备工作
    1. 使用路由分片因子 创建源索引
    1. 索引必须标记为只读,并且健康为绿色

index.number_of_shards 当前索引的分片数
index.number_of_routing_shards 拆分时可拆分的分片数
在这里插入图片描述

设为true,禁止对索引的写操作 ,但索引的元数据可正常写
在这里插入图片描述

  1. 拆分索引
  • 将上面的my_source_indx索引拆分为新索引
    在这里插入图片描述在这里插入图片描述

  • 一旦将目标索引添加到集群状态,上述请求将立即返回,不等拆分开始

  • 索引的拆分条件

    1. 目标索引不存在
    1. 源索引的主分片数少于目标索引
    1. 源索引的主分片数必须是目标索引分片数的一个因子
    1. 处理拆分进程的节点必须具有足够的可用磁盘空间,以容纳现有索引的第二个副本
  • _split API 类似于 create index API,且接受settings和aliases参数

  • PS: copy_settings = true 将源索引中的设置复制到目标索引(不能设为false,8.0.0将删除该参数)

  1. 监控拆分进程
  • 拆分进程可用 _cat recovery API监控,或设置cluster health API的wait_for_status 参数为yellow,等待所有主分片被分配
  • 分配任何分片前,只要目标索引已加入集群状态,_split API就会返回。若无法在拆分节点上分配目标索引,则其主分片保持未分配,知道可在该节点分配
  • 若主分片分配,进入状态初始化,并开始拆分过程,拆分完成后,分片变为活动状态。此时,es将尝试分配所有副本,并可能决定将主分片重定位到另外一个节点
  1. Wait For Active Shards
  • 拆分过程会创建一个新的索引来缩小分片,因此,在创建索引时,活跃分片等待的设置也可适用于拆分索引的操作
  1. 示例

创建索引,当前索引的分片数为1,拆分后的分片数为8
在这里插入图片描述导入数据,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值