两种比较好的ES集群迁移数据的方法

O、简介

介绍两种比较好的ES集群迁移数据的方法。下面是对两种方法的具体描述,已经过实践验证通过。

方法1、利用开源工具elasticdump进行迁移。优点是操作及其简单,且不需要重启集群;缺点是传输较慢,不适用大数据量的传输,过程中集群间使用http端口,占用集群带宽。主要还是慢。
方法2、利用ES自带快照备份到文件存储进行迁移。优点是速度快,因为是写磁盘,拷贝到新集群服务器,从快照恢复,速度快。适用于大数据量的场景

一、使用elasticdump工具迁移

0.安装nodejs(如果已安装请忽略)

执行

yum install -y nodejs
1.升级nodejs

执行

npm install -g n
n latest
2.安装elasticdump工具

执行

npm install elasticdump -g
3.迁移指定索引的settings,mapping,data

执行

elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=settings
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=mapping
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=data

二、利用ES自带快照备份到文件存储进行迁移

0.源ES集群指定共享文件夹

保证/data/backups目录存在,且属于elastic启动用户

mkdir /data/backups
chown -R elastic:elastic /data/backups

vim master节点 elasticsearch.yml添加行

path.repo: ["/data/backups"]

重启master节点生效

1.源ES集群中创建repository

执行指令

curl -XPUT http://fromhost:9200/_snapshot/my_repository  -d '{
    "type": "fs", 
    "settings": {
        "location": "/data/backups" 
    }
}'
2.创建快照(快照备份数据)
curl -XPUT http://fromhost:9200/_snapshot/my_repository/snapshot_20191114?wait_for_completion=true  -d '{
    "indices": "indexname"
}'

备份完成后文件夹/data/backups目录下有备份文件

3.移动源ES集群snapshot至目标ES集群的仓库

拷贝/data/backups/my_backup到新es集群机器

4.目标ES集群创建repository
curl -XPUT http://tohost:9200/_snapshot/my_repository  -d '{
    "type": "fs", 
    "settings": {
        "location": "/data/backups" 
    }
}'
5.新的集群查看快照信息
curl -XGET http://tohost:9200/_snapshot/my_repository/_all
6.从快照恢复
curl -XPOST http://tohost:9200/_snapshot/my_repository/snapshot_20191114/_restore
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值