ElasticSearch的大小数据、冷热数据隔离
2020-03-15 本文已影响0人
白奕新
- 使用SSD的机器作为热机,存储近期数据,提高写入、查询性能;使用HDD的机器作为冷机,存储历史数据,节省开销
- 使用group隔离热机,不同group的热机存储不同数据,避免不同数据的互相干扰。
(1)node的配置
elasticsearch.xml
node.{TAG-NAME}:{TAG-VALUE}
-
TAG-NAME与TAG-VALUE自定义,例如node.group:group1
-
除了使用{TAG-NAME},还可以使用"_ip","_name","_id","_host",下面allocation.include/require等同理。
(2)index配置:
parameter | 含义 | 其他 |
---|---|---|
index.routing.allocation.include.{TAG-NAME} | "index.routing.allocation.include.tag" : "value1,value2",会分配到其中的一台 | |
index.routing.allocation.require.{TAG-NAME} | require可以设置几个配置,需要全匹配才能allocation | 与include比较,即include只需要匹配一个即可,require需要全匹配 |
index.routing.allocation.exclude.{TAG-NAME} | 剔除 | 对应cluster.routing.allocation.exclude.{TAG-NAME} |
(3)实战
1、node上标记属性
node1,热机,group1组
node.tag=hot
node.group=group1
node5,冷机
node.tag=cold
2、index配置
这样子数据只会在group1的热机上
"index.allocation.require.tag":"hot"
"index.allocation.include.group":"group1"
3、当需要把分片从热机迁移到冷机时,修改配置
"index.allocation.require.tag":"cold"
"index.allocation.include.group":""