乐趣区

ElasticSearch-HotWarm架构

ElasticSearch Hot&Warm 架构

  • 数据通常不会有 Update 操作;
  • 适⽤于 Time based 索引数据(生命周期管理),同时数据量⽐较大的场景。
  • 引⼊ Warm 节点,低配置大容量的机器存放老数据,以降低部署成本

两类数据节点, 不同的硬件配置

  • Hot 节点(通常使用 SSD):索引有不断有新⽂档写入。通常使用 SSD
  • Warm 节点(通常使用 HDD):索引不存在新数据的写入;同时也不存在⼤量的数据查询

如何配置 Hot&Warm

  1. 标记节点

    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
  2. 配置索引到 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
  3. 配置索引到 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
退出移动版