美文网首页
Elasticsearch的集群分片迁移

Elasticsearch的集群分片迁移

作者: 代码的搬运工 | 来源:发表于2019-12-26 14:45 被阅读0次

    在Elasticsearch中可以通过集群路由API _cluster/reroute来对集群中的分片进行操作,例如可以在集群中把一个分片从一个节点迁移到另一个节点,将未分配的分片可以分配到一个特定节点上等。不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止ES进行自动索引分片分配,否则你从A节点把分片移到B节点,那么另一个节点的一个分片又会移到A节点。

    请求:POST http://127.0.0.1:9200/_cluster/reroute

    参数:{"commands": [{"move": {"index": "test", "shard": 0, "from_node": "node1", "to_node2"}}, {"allocate": {"index": "test", "shard": 1, "node": "node3"}}]}

    一共有三种操作:移动(move)、取消(cancel)和分片(allocate)。下面分别介绍这三种情况:

    1) 移动:把分片从一个节点移动到另一个节点。可以指定索引名和分片号。

    2) 取消:取消分配一个分片。可以指定索引名和分片号。node参数可以指定在哪个节点取消正在分配的分片。allow_primary参数支持取消分配主分片。

    3) 分配:分配一个未分配的分片到指定节点,可以指定索引名和分片号。node参数指定分配到哪个节点。allow_primary参数将使一个新的空主分片被分配,如果有一份原始的分片副本(包括数据)的节点重新加入集群,分片副本数据将被删除:旧的分片副本将会被新的活动分片副本替换。

    集群配置更新:系统允许对集群的配置进行更新。配置更新有两种状态,一是持久的,二是临时的。

    请求:PUT http://127.0.0.1:9200/_cluster/settings

    参数:{"persistent": {"discovery.zen.minimum_master_nodes": 2}}

    上面的例子是持久更新配置,如果把参数persistent换成了transient,就是临时更新。

    相关文章

      网友评论

          本文标题:Elasticsearch的集群分片迁移

          本文链接:https://www.haomeiwen.com/subject/wynkoctx.html