MST
星途 面试题库

面试题:ElasticSearch集群节点过滤策略之基础应用

在ElasticSearch集群中,简述基于节点属性(如自定义标签)进行节点过滤的基本步骤和常用API 。假设我们有一个集群,部分节点标记为 'data - hot',如何让索引只分配到标记为 'data - hot' 的节点上?
27.2万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

基于节点属性进行节点过滤的基本步骤

  1. 定义节点属性:在每个节点的 elasticsearch.yml 配置文件中添加自定义属性。例如,要标记一个节点为 data - hot,可在 elasticsearch.yml 中添加 node.attr.tag: data - hot,然后重启节点使配置生效。
  2. 索引创建时指定属性:在创建索引时,通过设置 index.routing.allocation.require.{属性名} 来指定节点属性。

常用API

  1. 创建索引并指定属性
    PUT /your_index_name
    {
      "settings": {
        "index.routing.allocation.require.tag": "data - hot"
      }
    }
    
    上述API在创建索引 your_index_name 时,指定只有具有 tag: data - hot 属性的节点才能分配该索引的分片。

让索引只分配到标记为 'data - hot' 的节点上的方法

按照上述常用API中的创建索引示例,在创建索引时设置 index.routing.allocation.require.tag: data - hot 即可。如果索引已经创建,可以通过更新索引设置的方式来添加该配置:

PUT /your_index_name/_settings
{
  "index.routing.allocation.require.tag": "data - hot"
}

这样就能确保该索引只分配到标记为 data - hot 的节点上。