Elasticsearch節點下線(退役)and unassigned shards


一、節點退役
當集群中個別節點出現故障預警等情況,需要進行退役工作,即讓所有位於該退役節點上的分片的數據分配到其他節點上后,再將此節點關閉並從集群中移除。

1、ES提供了讓某個節點上所有數據都移走的功能如下:

  ElasticSearch集群就會自動把這個節點上的所有分片,都自動轉移到其他節點上,等到轉移完成,這個空節點就可以毫無影響的下線。

curl -XPUT 127.0.0.1:9200/_cluster/settings -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}'

2、當shard都遷移走后,就可以將此機器上的ES進程關閉

3、可以在管理頁面上刪除此節點的ES服務角

 

二、在節點退役過程中遇到的坑

退役search server 節點時,在頁面上進行刪除該節點后,replia不為0的index恢復過來,但是導致副本為0的index未能進行shard的分配,導致search始終是red狀態。

方式一:跟客戶確認該未成功分配分片的索引有沒有用,沒用就直接刪除即可。

方式二:

1、查看ES集群的健康狀況

curl -XGET http://localhost:9200/_cluster/health\?pretty

2、*****************************開始修復************************************

2.1查找未分配的分配

curl -s "http://localhost:9200/_cat/shards" | grep UNASSIGNED 

2.3執行reroute(分多次,逐個修復 變更shard的值為UNASSIGNED查詢結果中編號, 上一步查詢結果是1 4)

將沒有成功分配的shard,進行手動遷移到目標節點:

curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"allocate" : {
"index" : "rs_wx_test",#unsigned 的索引
"shard" : 1,#出現unsigned的切片編號
"node" : "AfUyuXmGTESHXpwi4OExxx",#目標節點
"allow_primary" : true
}
}
] }'

方式三:增加節點數或者減少副本數:

這里選擇減少副本數為為例:

curl -H "Content-Type: application/json" -XPUT 'localhost:9200/employee/_settings?pretty' -d '{
"number_of_replicas": 1 #以前副本數為2的時候出現了shards unsigned,現將副本數設置為1,恢復正常
}'    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM