ElasticSearch Hot&Warm 架构
- 数据通常不会有 Update 操作;
- 适⽤于 Time based 索引数据(生命周期管理),同时数据量⽐较大的场景。
- 引⼊ Warm 节点,低配置大容量的机器存放老数据,以降低部署成本
两类数据节点, 不同的硬件配置
- Hot 节点(通常使用 SSD):索引有不断有新⽂档写入。通常使用 SSD
- Warm 节点(通常使用 HDD):索引不存在新数据的写入;同时也不存在⼤量的数据查询
如何配置 Hot&Warm
-
标记节点
bin/elasticsearch -E node.name=hotNode -E cluster.name=ljktest -E path.data=hot_data -E node.attr.my_node_type=hot -d bin/elasticsearch -E node.name=warmNode -E cluster.name=ljktest -E path.data=warm_data -E node.attr.my_node_type=warm -d
查看是否生效
curl http://localhost:9200/_cat/nodeattrs\?v
node host ip attr value hotNode 127.0.0.1 127.0.0.1 ml.machine_memory 8589934592 hotNode 127.0.0.1 127.0.0.1 xpack.installed true hotNode 127.0.0.1 127.0.0.1 my_node_type hot hotNode 127.0.0.1 127.0.0.1 ml.max_open_jobs 20 warmNode 127.0.0.1 127.0.0.1 ml.machine_memory 8589934592 warmNode 127.0.0.1 127.0.0.1 ml.max_open_jobs 20 warmNode 127.0.0.1 127.0.0.1 xpack.installed true warmNode 127.0.0.1 127.0.0.1 my_node_type warm
-
配置索引到 Hot Node
PUT logs-2019-09-23 { "settings": { "number_of_shards": 2, "number_of_replicas": 0, "index.routing.allocation.require.my_node_type":"hot" } }
查看索引
GET /_cat/shards
logs-2019-09-23 1 p STARTED 0 230b 127.0.0.1 hotNode logs-2019-09-23 0 p STARTED 0 230b 127.0.0.1 hotNode
-
配置索引到 Warm Node
假设现在之前 hot 的索引,我们要移动到 warm 节点上了。
PUT logs-2019-09-23/_settings {"index.routing.allocation.require.my_node_type":"warm"}
查看索引
logs-2019-09-23 1 p STARTED 0 283b 127.0.0.1 warmNode logs-2019-09-23 0 p STARTED 0 283b 127.0.0.1 warmNode