如何将某些索引限制为Elasticsearch集群中的一组计算机

时间:2015-03-03 04:40:12

标签: elasticsearch

我们在群集中有2x64GB计算机和2x16GB计算机,我们每天创建一个索引。要求是将新索引移动到64 GB计算机,将旧索引移动到16 GB计算机。如何用elasticsearch做到这一点?

2 个答案:

答案 0 :(得分:3)

你需要"标记"您的节点并使用node.tag属性指定哪个属性:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-allocation.html#shard-allocation-filtering

您为每个64GB节点(每个节点一个)指定node.tag: large1node.tag: large2

然后,在创建索引时,使用"index.routing.allocation.include.tag" : "large1,large2"(这些是64GB节点)指定您希望如何分配索引。当您决定将索引从两个节点移动到另外两个节点时,则更新上面的属性并指定"small1,small2"例如(较小的16GB节点)。

我建议您查看Curator,这可以帮助您更改这些设置。

答案 1 :(得分:1)

这是一个两步过程

  1. 使用键值对标记您的节点。例如:,对于较小的机器,将它们标记为boxType:small并且为了更好的机器标记它们为boxType:big。
  2. 接下来使用设置API应用index filter rule,如下所示 -
  3.   curl -XPUT localhost:9200/index-name/_settings -d '{
            "index.routing.allocation.include.tag" : "big"
        }'