es高级用法之冷热分离

本文介绍了Elasticsearch的冷热分离和读写分离技术,包括自定义分片分布规则、强制分布规则和分片分布过滤。通过设置不同的硬件和软件配置,实现近期数据快速查询和历史数据低速查询。实践中,通过索引模板和定时任务,将新索引分配给热节点,旧索引转移到冷节点。此外,还探讨了读写分离的实现,利用reroute API手动调整分片分配。
摘要由CSDN通过智能技术生成

背景

用户需求:近期数据查询速度快,较远历史数据运行查询速度慢?
image

  • 对于开发人员而言即数据的冷热分离,实现此功能有2个前提条件:
  1. 硬件:处理速度不同的硬件,最起码有读写速度不同的硬盘,如SSD、机械硬盘HDD。
  2. 软件配置:可以配置 不同的数据存储在不同的硬盘,如近期数据存储在SSD,较远历史数据存储在HDD。对于linux系统而言,存储于不同的硬盘就是存储在不同的路径。

elasticsearch的冷热分离配置主要依赖于分片分布规则设置。

es配置之分片分布规则设置

自定义分片分布规则

  • cluster.routing.allocation.awareness.attributes
    根据某个属性作为分片分布规则。
#设置节点属性rack_id及属性值rack_one
node.rack_id: rack_one  
#设置rack_id属性作为分片分布规则
cluster.routing.allocation.awareness.attributes: rack_id  
  • 可以为分片分布规则设置多个属性,例如:
cluster.routing.allocation.awareness.attributes: rack_id,zone

注意:当设置了分片分布属性时,如果集群中的节点没有设置其中任何一个属性,那么分片就不会分布到这个节点中。

强制分布规则

副本被分布到相同分布规则属性值的一群节点上,那么,我们可以强制分片规则为一个指定的值。

cluster.routing.allocation.awareness.force.zone.values: zone1,zone2  
cluster.routing.allocation.awareness.attributes: zone  

启动两个node.zone设置成zone1的节点,然后创建一个5个分片,一个副本的索引。索引建立完成后只有5个分片(没有副本),只有当我们启动node.zone设置成zone2的节点时,副本才会分配到那节点上。

上面配置的意思就是设置属性zone作为分布规则,并且属性zone的值为zone1/zone2,由于副本与主分片不分配在一类节点中,则副本分片

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值