Elasticsearch 增加刪除 Cluster 節點時要做的 Index Shard Allocation

栏目: 后端 · 发布时间: 6年前

内容简介:最近把公司的 Elasticsearch Cluster 加了一台 Cluster Node,準備應戰更大量的 Data Query,但是加完之後發現 Index shard 沒有很平均的分散在新的 Cluster Node … :(原本我的 Elasticsearch Cluster 有 2 台,加到第 3 台後開始不平均 …在同事強力的協助下發現如果要新增移除 Cluster Node 都必須調整 Index Shard Allocation,詳細可以參考 elastic 官方「

最近把公司的 Elasticsearch Cluster 加了一台 Cluster Node,準備應戰更大量的 Data Query,但是加完之後發現 Index shard 沒有很平均的分散在新的 Cluster Node … :(

原本我的 Elasticsearch Cluster 有 2 台,加到第 3 台後開始不平均 …

在同事強力的協助下發現如果要新增移除 Cluster Node 都必須調整 Index Shard Allocation,詳細可以參考 elastic 官方「 Cluster level shard allocation 」文件

主要影響的參數有

  • cluster.routing.allocation.balance.shard 每個節點分配 shard 的權重,預設為 0.45f
  • cluster.routing.allocation.balance.index 每個節點分配 index 的權重,預設為 0.55f
  • cluster.routing.allocation.balance.threshold 分配優化值,數字越大越不平均,預設 1.0f

預設的 index、shard 權重大概就僅適合 2 台 Cluster 分配,所以當第三台出現的時候就開始不平均了,可以透過設定 elasticsearch.yml 用 API 來讓 index / shard balance。

以 3 台來說,每台平均分配大約就是 0.3

curl -XPUT -H 'Content-Type: application/json' http://127.0.0.1:9200/_cluster/settings -d '{
"transient" : {
  "cluster.routing.allocation.balance.shard" : 0.33,
  "cluster.routing.allocation.balance.index" : 0.33,
  "cluster.routing.allocation.balance.threshold" : 1.0}}'

或是寫在 elasticsearch.yml

cluster:
  routing:
    allocation
      balance
        shard: 0.33
        index: 0.33
        threshold: 1.0

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

常用算法程序集

常用算法程序集

徐士良 编 / 清华大学 / 2004-1 / 48.00元

本书针对工程中常用的行之有效的算法而编写,其主要内容包括多项式的计算、复数运算、随机数的产生 、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数学变换与滤波、特殊函数的计算、排序和查找。 书中所有的算法均用C语言描述,并存放在一张光盘上。 本书可供广大科研人员、工程技术人员以及管理工作者阅读使用,也......一起来看看 《常用算法程序集》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换