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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。