在导入大量数据时,不使用数据备份并仅使用一个节点,速度会较之前提升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" } }'