面试题答案
一键面试基于节点属性进行节点过滤的基本步骤
- 定义节点属性:在每个节点的
elasticsearch.yml
配置文件中添加自定义属性。例如,要标记一个节点为data - hot
,可在elasticsearch.yml
中添加node.attr.tag: data - hot
,然后重启节点使配置生效。 - 索引创建时指定属性:在创建索引时,通过设置
index.routing.allocation.require.{属性名}
来指定节点属性。
常用API
- 创建索引并指定属性:
上述API在创建索引PUT /your_index_name { "settings": { "index.routing.allocation.require.tag": "data - hot" } }
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
的节点上。