ES分片遷移的一些經(jīng)驗(yàn)

在對(duì)集群進(jìn)行擴(kuò)容或者替換節(jié)點(diǎn)的時(shí)候,不可避免會(huì)有移動(dòng)分片的操作,可以使用如下的語句進(jìn)行操作,首先要關(guān)閉自動(dòng)reshard

cluster.routing.allocation.disable_allocation = false

然后可以使用move、cancel以及allocate進(jìn)行分片的移動(dòng)、取消分配以及重新分配沒有分配的shard到指定節(jié)點(diǎn)。

curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
    "commands" : [ {
        "move" :
            {
              "index" : "test", "shard" : 0,
              "from_node" : "node1", "to_node" : "node2"
            }
        },
       "cancel" :
            {
              "index" : "test", "shard" : 0, "node" : "node1"
            }
        },
        {
          "allocate" : {
              "index" : "test", "shard" : 1, "node" : "node3"
          }
        }
    ]
}'

當(dāng)然,推薦使用kopf插件,對(duì)以上操作進(jìn)行可視化操作,更直觀容易。


kopf插件截圖

但是以上方式,對(duì)于分片很少的情況下是適用的,如果需要轉(zhuǎn)移的節(jié)點(diǎn)很多就有些太過于麻煩了。

當(dāng)然ES默認(rèn)是開啟自動(dòng)reshard功能的,也就是說設(shè)置

cluster.routing.allocation.disable_allocation = true

ES會(huì)按照同node不能存相同shard、shard分片分配平均等因素進(jìn)行重新平衡。如果我們是進(jìn)行擴(kuò)容,那么把擴(kuò)容的節(jié)點(diǎn)加進(jìn)來,然后開啟自動(dòng)reshard功能,我們就可以坐等平衡結(jié)束了。

但是如果我們是想要替換掉部分節(jié)點(diǎn),那么如果按照以上操作,會(huì)將所有的節(jié)點(diǎn)在所有的節(jié)點(diǎn)上進(jìn)行平衡,那么我們要下掉的節(jié)點(diǎn)也會(huì)平均分布著分片數(shù)據(jù)。待平衡后,我們想要下掉某個(gè)節(jié)點(diǎn),還是需要轉(zhuǎn)移走這部分分片,而且原來的處理方式是手工的。。。很明顯,這種方式太原始,而且浪費(fèi)了之前平衡花費(fèi)的時(shí)間和流量。那么有沒有什么配置,讓ES平衡節(jié)點(diǎn)的時(shí)候不向上面分配分片,或者更進(jìn)一步直接將原有分片“趕出去”呢?

可以嘗試使用下面的命令

curl -XPUT 'localhost:9200/_cluster/settings' -d
'{
  "transient": {
    "cluster.routing.allocation.exclude._ip": "192.168.0.1,192.168.0.2"
  }
}'

讓ES不再向這兩個(gè)ip的node進(jìn)行分片分配。這個(gè)配置還可以使用_name以及_host等??梢詤⒖脊俜轿臋n:

https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-filtering.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容