身安不如心安,屋宽不如心宽 。

elasticsearch新增节点,由于分片平衡,导致新建索引分片往新节点上写,引起任务积压

Elasticsearch | 作者 wangjing79100 | 发布于2022年01月04日 | 阅读数:1383

版本elasticsearch7.2.0,当前有47个节点,每个数据节点500多个分片,索引每小时创建一次。每天创建索引约400多个。
问题:新增节点时,由于自平衡,导致新索引都会优先把分片分到新节点上,造成新节点写入任务积压。负载高。请问这个怎么解决?
目前的思路是减少索引量,部分改成每天创建一次,或者提前一天建索引。减少新节点上的热线程,但只能缓解。
已邀请:

God_lockin

赞同来自:

你可以在index_template 里先设allocate require已知的几个节点,那在新分片分配的时候就不会直接放在新节点里了
 
等索引/分片平衡好了之后再把新的索引以及index_template里关于allocate的配置去掉,或者改成包含新节点试试

zmc - ES PAAS、JuiceFS

赞同来自:

“每小时创建一次”,看起来是日志或者数据分析类型的数据;
可以利用生命周期管理的模式来实现:使用几个节点(标记hot、或者new)用来存放新建立的索引数据,一段时间后搬到其他的节点(例如weak节点),这样写数据只会写固定的几个节点。并且不会有其他数据到这几个节点~

要回复问题请先登录注册