一直看ES的集羣狀態都是yellow,一開始沒在乎,後來越覺奇怪,三個節點,5個主片5個副片,node-3上一直沒分片,主片分在了node-1,node-2,副片分在。。。node
啊,副片全都UNASSIGNED了,才發現。。。。。。。curl
因而乎進行rerouterui
首先貓一下分片狀況url
>>> curl -XGET 'http://localhost:9200/_cat/shards'spa
my_index 4 p STARTED 104917 157.2mb 127.0.0.1 node-1
my_index 4 r UNASSIGNED
my_index 3 p STARTED 104892 156.7mb 127.0.0.1 node-1
my_index 3 r UNASSIGNED
my_index 2 p STARTED 104714 155.6mb 127.0.0.1 node-1
my_index 2 r UNASSIGNED
my_index 1 p STARTED 104874 156.5mb 127.0.0.1 node-2
my_index 1 r UNASSIGNED
my_index 0 p STARTED 105933 156.5mb 127.0.0.1 node-1
my_index 0 r UNASSIGNED.net
0-4 5個r分片全淪陷了(head上就看出來了好伐...)router
而後進行rerouteblog
curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"allocate" : {
"index" : "my_index",
"shard" : 這裏是分片,
"node" : 這裏是節點,
"allow_primary" : true
}
}
]
}'get
爲了方便寫個腳本去作博客
#!bin/sh
for index in $(curl -s 'http://localhost:9200/_cat/shards' | grep UNASSIGNED | awk '{print $1}' | sort | uniq); do
for shard in $(curl -s 'http://localhost:9200/_cat/shards' | grep UNASSIGNED | grep $index | awk '{print $2}' | sort | uniq); do
echo $index $shard
curl -XPOST 'http://localhost:9200/_cluster/reroute' -d "{'commands':[{'allocate':{'index':$index,'shard':$shard,'node':'node-3','allow_primary':true}}]}"
sleep 5
done
done
好,試一下。。。。。。。果斷報錯
這個。。。眼睛有點兒花。直接去查查reroute失敗的緣由,瞄到以下信息(來自博客http://blog.csdn.net/xiangcheng001/article/details/51133364)
啊,貌似在錯誤裏看到了個85,回看眼錯誤信息是有個相關的描述。
df -h 檢查一下
乖乖,啥時候這麼多了。
嗯,再見了,我心愛的電影,大電影,小電影
刪完以後再reroute,
{
balabala的
後來發現其實不用rerouter就已經自動修復了,
好,你們都綠的發亮了,皆大歡喜