随笔 - 441  文章 - 4  评论 - 84  阅读 - 109万 

在ES查询时,有些数据是热点数据,这些数据是需要需要更好的机器配置的节点,当数据变得不是那么重要的时候,我们需要转到配置相对低的节点上。

比如热点新闻专题,我们需要更好的机器,热点过后,这些数据不再需要那么快的查询效率。这种情况我们可以通过ES的配置来实现。

 

热节点要求:

cpu,内存,io 配置比较高,建议使用SSD

冷节点要求

磁盘比较大

 

具体配置方法

给节点打标签

# 标记一个 Hot 节点
bin/elasticsearch  -E node.name=hotnode -E cluster.name=geektime -E path.data=hot_data -E node.attr.my_node_type=hot

# 标记一个 warm 节点
bin/elasticsearch  -E node.name=warmnode -E cluster.name=geektime -E path.data=warm_data -E node.attr.my_node_type=warm

增加
my_node_type 属性,一个节点为 hot,一个为 warm 节点。

# 通过下面的命令再kibana查看节点
GET /_cat/nodeattrs?v

将索引创建到热节点

PUT xinwen2019
{
  "settings":{
    "number_of_shards":2,
    "number_of_replicas":0,
    "index.routing.allocation.require.my_node_type":"hot"
  }
}
创建索引时指定热节点。
index.routing.allocation.require.my_node_type


PUT 
xinwen2019
/_doc/1 
{ 
"key":"value" 
} 

 当热点过后将数据转移到冷节点。

PUT 
xinwen2019
/_settings 
{ 
"index.routing.allocation.require.my_node_type":"warm" 
}
配置副本到不同的rack
通过配置主副本配置不同的rack保证 ES节点的高可用性。

# 标记一个 rack 1
bin/elasticsearch  -E node.name=node1 -E cluster.name=geektime -E path.data=node1_data -E node.attr.my_rack_id=rack1

# 标记一个 rack 2
bin/elasticsearch  -E node.name=node2 -E cluster.name=geektime -E path.data=node2_data -E node.attr.my_rack_id=rack2

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.awareness.attributes": "my_rack_id"
  }
}

PUT my_index1
{
  "settings":{
    "number_of_shards":2,
    "number_of_replicas":1
  }
}

PUT my_index1/_doc/1
{
  "key":"value"
}


GET _cat/shards?v
DELETE my_index1/_doc/1

 这样配置后,可以看到 shard 的主分片和副本 被分配到了不同的 节点上。

 
 
 

 

posted on   自由港  阅读(861)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2018-12-29 负载均衡下 tomcat session 共享
2018-12-29 linux 下安装nginx
2018-12-29 在平台中使用JNDI 数据源
2018-12-29 redis 安装
2018-12-29 kafka 支持发布订阅
点击右上角即可分享
微信分享提示