es迁移分片

在导入大量数据时,不使用数据备份并仅使用一个节点,速度会较之前提升2倍左右,导入速度提升明显。

第一步

设置cluster.routing.allocation.disable_allocation的值,通过reroute api对索引分片进行手动分配。

curl -H "Content-Type:application/json" -XPUT 192.168.56.225:9200/_cluster/settings -d'{
    "transient": {
        "cluster.routing.allocation.enable": "none"
    }
}'

第二部

手动将116上的主分片迁移至225节点(这里迁移的是索引test的第0个分片。可通过修改shard后面的至指定分片序号)

curl -H "Content-Type:application/json" -XPOST '192.168.56.225:9200/_cluster/reroute' -d  '{
    "commands" : [
        {
            "move" : {
                "index" : "test", "shard" : 0,
                "from_node" : "192.168.56.116", "to_node" : "192.168.56.225"
            }
        }
    ]
}'

第三部

可通过 GET /_cat/shards 来查看索引的分片部署情况,当所有主分片都成功迁移至225节点时,停止116节点的es服务,把cluster.routing.allocation.disable_allocation的值改为默认值。

curl -H "Content-Type:application/json" -XPUT 192.168.56.225:9200/_cluster/settings -d'{
    "transient": {
        "cluster.routing.allocation.enable": "all"
    }
}'

 

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注