我有 ElasticSearch 7.16.2 集群運行三個節點(2 個主節點,1 個投票節點)。一個索引有兩個主分片和兩個副本,并且在重新啟動節點時,兩個主分片都移動到單個節點。如何將節點中的索引限制為一個主分片和一個副本。
uj5u.com熱心網友回復:
您可以使用索引級別的分片分配設定來實作這一點,這可能不是那么簡單,而且設定有點復雜,并且當集群中的節點和索引發生變化時可能會導致進一步的不平衡。
為了避免節點重啟時發生的問題,您必須在啟動 Elasticsearch 集群中的節點之前禁用分片分配和分片重新平衡。
禁用分配的命令
PUT /_cluster/settings
{
"cluster": {
"routing.allocation.enable": false
}
}
禁用重新平衡的命令
PUT /_cluster/settings
{
"cluster": {
"routing.rebalance.enable": false
}
}
除此之外,您可以使用重新路由 API手動將分片移動到 Elasticsearch 中的節點,以修復您當前的分片分配。
uj5u.com熱心網友回復:
配置是index.routing.allocation.total_shards_per_node. 但你有問題。首先,我假設你有三個data node. (如果沒有,請增加資料節點。)。
問題是您總共有 4 個主分片和副本分片,一個節點必須為自己分配兩個分片。所以你不能將 index.routing.allocation.total_shards_per_node 設定為 1。至少它必須是 2 并且你的問題沒有解決。
配置是動態的:https ://www.elastic.co/guide/en/elasticsearch/reference/master/increase-shard-limit.html
您也可以cluster.routing.allocation.total_shards_per_node為集群設定配置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/523556.html
標籤:弹性搜索
