1. 程式人生 > >單節點Elasticsearch出現unassigned_shards原因及解決辦法

單節點Elasticsearch出現unassigned_shards原因及解決辦法

檢視單節點Elasticsearch健康狀態


使用head外掛檢視叢集狀態


從上面截圖可以看出存在5個unassigned的分片,新建索引blog5的時候,分片數為5,副本數為1,新建之後叢集狀態成為yellow,其根本原因是因為叢集存在沒有啟用的副本分片,我們先來看一下官網給出的副本分片的介紹:

副本分片的主要目的就是為了故障轉移,正如在 叢集內的原理 中討論的:如果持有主分片的節點掛掉了,一個副本分片就會晉升為主分片的角色。

那麼可以看出來副本分片和主分片是不能放到一個節點上面的,可是在只有一個節點的叢集裡,副本分片沒有辦法分配到其他的節點上,所以出現所有副本分片都unassigned得情況。因為只有一個節點,如果存在主分片節點掛掉了,那麼整個叢集理應就掛掉了,不存在副本分片升為主分片的情況。

解決辦法就是,在單節點的elasticsearch叢集,刪除存在副本分片的索引,新建索引的副本都設為0。然後再檢視叢集狀態


新建索引副本數設定為0


叢集狀態健康