常用的一般是 allocate 和 move: allocate_* 指令 因为负载过高等原因,有时候个别分片可能长期处于 UNASSIGNED 状态,我们就可以手动分配分片到指定节点上。默认情况下只允许手动分配副本分片(即使用 allocate_replica),所以如果要分配主分片,需要单独加一个 accept_data_loss 选项: # curl -XPOST 127.0.0.1:9200/_...
Elasticsearch2.X及早期版本,只需将上面脚本中的allocate_replica改为 allocate,其他不变。 上面脚本解读: 步骤1:定位 UNASSIGNED 的节点和分片 1 curl -s'10.0.8.47:9200/_cat/shards'|fgrepUNASSIGNED 步骤2:通过 allocate_replica 将 UNASSIGNED的分片重新分配。 allocate分配原理 分配unassigned的分片到一个节点。...
{ "allocate_replica":{ "index":"test", "shard":1, "node":"node3" } } ] } 节点命令 以下是一些常用的ElasticSearch节点命令: cat master cat master命令可以显示master节点的节点ID、绑定的IP和节点名 GET /_cat/master?v cat nodes cat nodes命令可以查看集群拓扑结构 GET /_cat/nodes?v ip es节...
indexname1r UNASSIGNED 之前在运维过程中也遇到过UNASSIGNED这种从shard无法分配的问题,通过"allocate_replica"命令手动分配可以解决,这类问题一般都是因为node节点重启或者失联导致的shard分片异常 2、通过“GET _cluster/allocation/explain”错误信息如下: "index":"indexname","shard":3,"primary":false,"current_sta...
使用move命令修改主分片的存储节点位置;使用cancel命令撤销主分片节点存储位置,使 Elasticsearch 重新分配索引分片;使用allocate_replica手动触发分片重新分配;使用allocate_stale_primary分配一个过时的副本分片来充当主分片;使用allocate_empty_primary生成一个新的空分片来充当主分片。
步骤2:通过 allocate_replica 将 UNASSIGNED的分片重新分配。 8、核心知识点 1)路由 原理很简单,把每个用户的数据都索引到一个独立分片中,在查询时只查询那个用户的分片。这时就需要使用路由。 使用路由优势:路由是优化集群的一个很强大的机制。 它能让我们根据应用程序的逻辑来部署文档, 从而可以用更少的资源构建...
ES2.X及早期版本,将 allocate_replica改为 allocate,其他不变。 脚本解读: 步骤1:定位 UNASSIGNED 的节点和分片。 步骤2:通过 allocate_replica 将 UNASSIGNED的分片重新分配。 8、核心知识点 1)路由 原理很简单,把每个用户的数据都索引到一个独立分片中,在查询时只查询那个用户的分片。这时就需要使用路由。
共做了:move 移动分片 和 allocate_replica 分配副本两个操作。 第四类:检查路由、分配规则。 许多高可用或复杂的系统使用路由或分配规则来控制分片分配,随着情况的变化,这会创建无法分配的分片。 这个时候,explain API 有助于排查问题。 3、小结 之前也写过集群红色、黄色修复方案的文章,这次的更系统化一些,更偏...
{"commands":[{"allocate_replica": {"index":"{indexName1}","shard": {shardId},"node":"{nodes-9}"} }]} 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 如果是主分片无法分配,可以尝试如下命令进行分配 复制 POST/_cluster/reroute ...
共做了:move 移动分片 和 allocate_replica 分配副本两个操作。 第四类:检查路由、分配规则。 许多高可用或复杂的系统使用路由或分配规则来控制分片分配,随着情况的变化,这会创建无法分配的分片。 这个时候,explain API 有助于排查问题。 3、小结 之前也写过集群红色、黄色修复方案的文章,这次的更系统化一些,更偏...