博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[elk]elasticsearch实现冷热数据分离
阅读量:5100 次
发布时间:2019-06-13

本文共 3462 字,大约阅读时间需要 11 分钟。

本文以最新的elasticsearch-6.3.0.tar.gz为例,为了节约资源,本文将副本调为0, 无client角色

https://www.elastic.co/blog/hot-warm-architecture-in-elasticsearch-5-x

以前es2.x版本配置elasticsearch.yml 里的node.tag: hot这个配置不生效了被改成了这个node.attr.box_type: hot

es架构

806469-20180705160411659-745143447.png

各节点的es配置

master节点:[root@n1 ~]# cat /usr/local/elasticsearch/config/elasticsearch.yml cluster.name: elknode.master: truenode.data: falsenode.name: 192.168.2.11#node.attr.box_type: hot#node.tag: hotpath.data: /data/es path.logs: /data/lognetwork.host: 192.168.2.11http.port: 9200transport.tcp.port: 9300transport.tcp.compress: truediscovery.zen.ping.unicast.hosts: ["192.168.2.11"]cluster.routing.allocation.disk.watermark.low: 85%cluster.routing.allocation.disk.watermark.high: 90%indices.fielddata.cache.size: 10%indices.breaker.fielddata.limit: 30%http.cors.enabled: truehttp.cors.allow-origin: "*"
- client节点(这里就不配置了)node.master: falsenode.data: false
- hot节点[root@n2 ~]# cat /usr/local/elasticsearch/config/elasticsearch.yml cluster.name: elknode.master: falsenode.data: truenode.name: 192.168.2.12node.attr.box_type: hotpath.data: /data/esnetwork.host: 192.168.2.12http.port: 9200transport.tcp.port: 9300transport.tcp.compress: truediscovery.zen.ping.unicast.hosts: ["192.168.2.11"]cluster.routing.allocation.disk.watermark.low: 85%cluster.routing.allocation.disk.watermark.high: 90%indices.fielddata.cache.size: 10%indices.breaker.fielddata.limit: 30%http.cors.enabled: truehttp.cors.allow-origin: "*"
- cold节点[root@n3 ~]# cat /usr/local/elasticsearch/config/elasticsearch.yml cluster.name: elknode.master: falsenode.data: truenode.name: 192.168.2.13node.attr.box_type: coldpath.data: /data/esnetwork.host: 192.168.2.13http.port: 9200transport.tcp.port: 9300transport.tcp.compress: truediscovery.zen.ping.unicast.hosts: ["192.168.2.11"]cluster.routing.allocation.disk.watermark.low: 85%cluster.routing.allocation.disk.watermark.high: 90%indices.fielddata.cache.size: 10%indices.breaker.fielddata.limit: 30%http.cors.enabled: truehttp.cors.allow-origin: "*"

如何实现某索引数据写到指定的node?(根据节点tag即可)

我hot节点打了tag

node.attr.box_type: cold
创建一个template(这里我用kibana来操作es的api)PUT _template/test{    "index_patterns": "test-*",    "settings": {        "index.number_of_replicas": "0",        "index.routing.allocation.require.box_type": "hot"     }}

806469-20180705155612033-1703067856.png

意思是test-*索引命名的,都将其数据放到hot节点上.

如何实现数据从hot节点迁移到老的cold节点?

以test-2018.07.05索引为例,将它从hot节点迁移到cold节点

kibana里操作:PUT /test-2018.07.05/_settings {   "settings": {     "index.routing.allocation.require.box_type": "cold"  } }

806469-20180705155817421-416637626.png

生产中可能每天,或每h,生成一个index.

test-2018.07.01test-2018.07.02test-2018.07.03test-2018.07.04test-2018.07.05...

我可以写一个sh定时任务,每天晚上定时迁移数据.

如我在hot节点只保留7天的数据,7天以前的索引我匹配到, 每天晚上执行以下迁移命令即可.

cold节点数据保留1个月?

https://www.cnblogs.com/iiiiher/p/8029062.html

优化点:

1.为了提高吞吐量

path.data:/data1,/data2,/data3,/data4,/data5 可以每个目录挂一块盘

2.如果有10台hot节点,可以设置10个shards

logstash测试

input { stdin { } }output {    elasticsearch {         index => "test-%{+YYYY.MM.dd}"        hosts => ["192.168.2.11:9200"]     }    stdout {codec => rubydebug}}/usr/local/logstash/bin/logstash -f logstash.yaml --config.reload.automatic

关于es的index template

关于

es数据入库时候都会匹配一个index template,默认匹配的是logstash这个template

template大致分成setting和mappings两部分

  1. settings主要作用于index的一些相关配置信息,如分片数、副本数,tranlog同步条件、refresh等。
  2. mappings主要是一些说明信息,大致又分为_all、_source、prpperties这三部分: https://elasticsearch.cn/article/335

根据index name来匹配使用哪个index template. index template属于节点范围,而非全局. 需要给某个节点单独设置index_template(如给设置一些特有的tag).

转载于:https://www.cnblogs.com/iiiiher/p/9268832.html

你可能感兴趣的文章
文件下载的几种方法
查看>>
select选中值传递到后台action中
查看>>
iOS中实现plist中读取数据实现Cell的显示(字典转模型,实现按序分组)修改图片的尺寸...
查看>>
使用自定义端口连接SQL Server 的方法
查看>>
ajax成功后XML 解析错误:格式不佳
查看>>
反射ModelToDto
查看>>
Win10提示没有权限使用网络资源问题解决
查看>>
初步打开MVC大门
查看>>
二十三、oracle pl/sql分类三 包
查看>>
dubbo 配置文件详解
查看>>
创建Docker私有仓库
查看>>
前端开发利器 - WebStorm
查看>>
[原创]java WEB学习笔记91:Hibernate学习之路-- -HQL 迫切左外连接,左外连接,迫切内连接,内连接,关联级别运行时的检索策略 比较。理论,在于理解...
查看>>
上传图片并实现本地预览(1)
查看>>
C# 下载
查看>>
windows 系统新建 vue 项目的坑
查看>>
c#线程1
查看>>
使用docker部署skywalking
查看>>
如何设计自动化测试的代码结构
查看>>
样本打散后计算单特征 NDCG
查看>>