您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何解決ElasticSearch重啟之后shard未分配問題”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
環(huán)境:
Ubuntu16.04
elasticsearch 6.2.3
3個master節(jié)點,10個data節(jié)點
每個分片有一個副本
故障:
將一個數(shù)據(jù)節(jié)點的elasticsearch換成docker elasticsearch,分詞器沒有添加到plugins中。隨后把分詞器添加到plugins中后,發(fā)現(xiàn)有的分片沒有被分配,但是ES集群啟動正常,只不過一直是yellow狀態(tài)。而且unassigned分片一直未被分配。
首先執(zhí)行:GET user/_recovery?active_only=true
發(fā)現(xiàn)集群并沒有進(jìn)行副本恢復(fù)。
點擊未進(jìn)行分配的分片,發(fā)現(xiàn)allocation_status: "no_attempt"
原因是:shard 自動分配 已經(jīng)達(dá)到最大重試次數(shù)5次,仍然失敗了,所以導(dǎo)致"shard的分配狀態(tài)已經(jīng)是:no_attempt"。這時在Kibana Dev Tools,執(zhí)行命令:POST /_cluster/reroute?retry_failed=true
即可。由index.allocation.max_retries
參數(shù)來控制最大重試次數(shù)。
The cluster will attempt to allocate a shard a maximum of index.allocation.max_retries times in a row (defaults to 5), before giving up and leaving the shard unallocated.
當(dāng)執(zhí)行reroute
命令對分片重新路由后,ElasticSearch會自動進(jìn)行負(fù)載均衡,負(fù)載均衡參數(shù)cluster.routing.rebalance.enable
默認(rèn)為true。
It is important to note that after processing any reroute commands Elasticsearch will perform rebalancing as normal (respecting the values of settings such as cluster.routing.rebalance.enable) in order to remain in a balanced state.
一般來說,ElasticSearch會自動分配 那些 unassigned shards,當(dāng)發(fā)現(xiàn)某些shards長期未分配時,首先看下是否是因為:為索引指定了過多的primary shard 和 replica 數(shù)量,然后集群中機器數(shù)量又不夠。另一個原因就是本文中提到的:由于故障,shard自動分配達(dá)到了最大重試次數(shù)了,這時執(zhí)行 reroute 就可以了。
“如何解決ElasticSearch重啟之后shard未分配問題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。