elasticsearch7.x clusterAPI之reroute

reroute

POST /_cluster/reroute

手动更改集群中分片的分配。在重新路由之后,Elasticsearch会正常执行再平衡以保持平衡状态。可以通过cluster.routing.allocation.enable设置来禁用分片分配。那么这时只有显示调用reroute和再平衡会分配分配。

查询参数

参数 说明
dry_run 可以通过使用?dry_run查询参数或者请求体中传入"dry_run": true来使用dry run模式执行reroute命令。此模式下会计算执行remote后集群状态的结果,并返回再平衡之后的集群状态,但不会真正执行请求的更改。
explain 如果使用?explain查询参数,则返回结果会包含一个为什么可以执行或者为什么不能执行的解释信息。
metric 指定返回的指标信息。可选值与state的路径参数metrics可接受值相同,默认为_all。
retry_failed 如果使用?retry_failed查询参数,则将尝试对之前分配失败的分片重试一次分配。集群在尝试分配分片index.allocation.max_retries(默认为5)次后会放弃分配。这种情况可能是由一些结构性问题引起的,当问题解决后,就可以通过此查询参数来尝试重新分配一次之前分配失败的分片。
timeout 等待响应的超时时间,如果超时则请求失败并返回错误,默认为30s。
master_timeout master_timout指定连接主节点的超时时间。如果超时前没有收到响应,则请求失败并返回错误,默认为30s。

请求体

参数 参数值 说明
commands move

将started(已启动)状态的分片从一个节点移动到另一个节点。move包含四个属性:

index(索引名)、shard(分片编号)、from_node(节点名,从哪个节点移动)、to_node(节点名,移动到哪个节点)。

cancel 取消或恢复分片的分配。cancel包含三个属性:index(索引名)、shard(分片编号)、node(要取消分片分配的节点)。可以通过取消副本并允许通过标准恢复过程重新初始化,来强制从主分片重新同步现有副本。默认情况下,只有副本分片可以取消。如果需要取消主分片的分配,还需要在请求中添加allow_primary属性。
allocate_replica 将未分配的分片分配给节点。allocate_replica包含三个属性:index(索引名)、shard(分片编号)、node(要分配分片的节点)。
allocate_stale_primary   将主分片分配给持有过期副本的节点。allocate_stale_primary包含三个属性:index(索引名)、shard(分片编号)、node(要分配分片的节点)。此命令可能导致分片数据丢失。如果拥有良好数据副本的节点稍后重新加入集群,这些数据将被删除或者使用此命令强制分配过期的数据副本覆盖。为了确保这些影响被很好的理解,此命令需要将accept_data_loss属性显示设置为true。
allocate_empty_primary   将一个空的主分片分配给节点。allocate_empty_primary包含三个属性:index(索引名)、shard(分片编号)、node(要分配分片的节点)。如果分片之前已经启动,使用此命令会导致索引到此分片的所有数据完全丢失。如果拥有良好数据副本的节点稍后重新加入集群,这些数据将被删除。为了确保这些影响被很好的理解,此命令需要将accept_data_loss属性显示设置为true。

你可能感兴趣的:(elasticsearch)