最近工作中发现有一个es集群不稳定,影响了线上其他项目的使用。遂考虑迁移索引到其他集群上;
网上搜索到有多重方案:
1.查询并导出数据
2.目录复制
3.采用snapshot快照
各种方案各有优劣:
第一种:优点:支持个性化操作 缺点:所有的使用脱离不了api,且在维护数据的同时需要维护mapping映射等信息;
第二种:优点:简单粗暴 缺点:不同集群配置可能不同,可能造成索引内的分配不能识别
第三种:优点:重复利用es的快照,可以对特定时间节点的数据进行恢复 缺点:使用成本高,且网上都是通过sshfs操作,不太容易接受
后来从网上找到了一个其他的解决方式:
采用elasticsearch-dump插件
使用方式如下:
1.安装
npm install elasticdump -g
2.应用
假设端口都是9200,需要根据实际情况做调整
2.1导出mapping
elasticdump --input=http://源ip:9200/索引名称 --output=http://目标ip:9200/索引名称 --type=mapping
2.2导出数据
elasticdump --input=http://源ip:9200/索引名称 --output=http://目标ip:9200/索引名称 --type=data