Elasticsearch-数据迁移elasticdump

一、环境信息 

主机名        IP
elasticsearch-master10.10.10.1
elasticsearch-slave10.10.10.2

二、互联网部分

2.1、Nodejs下载安装(master节点)

#官网:Download | Node.js

#下载nodejs包
[root@elasticsearch-master home]# wget -c https://nodejs.org/dist/v16.18.1/node-v16.18.1-linux-x64.tar.xz

#解压包
[root@elasticsearch-master ~]# xz -d node-v16.18.1-linux-x64.tar.xz
[root@elasticsearch-master ~]# tar -xf node-v16.18.1-linux-x64.tar

#创建软链接
[root@elasticsearch-master ~]# mv node-v16.18.1-linux-x64 nodejs
[root@elasticsearch-master ~]# cd nodejs
[root@elasticsearch-master bin]# ln -s /root/nodejs/bin/node /usr/bin/node
[root@elasticsearch-master bin]# ln -s /root/nodejs/bin/npm /usr/bin/npm


#确认软链是否成功

#验证

[root@elasticsearch-master ~]# elasticdump --version
6.111.0

2.2、安装elasticdump(master节点)

#[root@elasticsearch-master bin]# npm install elasticdump -g

#报错原因是:node的默认安装环境是在国外

#更换为淘宝源

[root@elasticsearch-master bin]# npm config set registry https://registry.npmmirror.com

#查看是否更新成功
[root@elasticsearch-master bin]# npm config get registry
https://registry.npmmirror.com/

#继续安装

#[root@elasticsearch-master bin]# npm install elasticdump -g

#创建软链接

[root@elasticsearch-master bin]# ln -s /root/nodejs/bin/elasticdump /usr/bin/elasticdump

#验证

[root@elasticsearch-master bin]# elasticdump --version
6.111.0

四、离线安装(需要先在互联网机器进行安装部署后才可以实现离线安装elasticdump)

4.1、将slave节点当作内网机器进行实验

#将master节点上已部署好的目录进行打包

[root@elasticsearch-master ~]# tar -zcf  nodejs.tar.gz nodejs

#拷贝到slave节点并解压

[root@elasticsearch-master ~]# scp -rp nodejs.tar.gz 10.10.10.2:/root/

4.2、解压、创建软链并验证

#[root@elasticsearch-slave ~]# tar -xf nodejs.tar.gz

[root@elasticsearch-slave ~]# ln -s /root/nodejs/bin/node /usr/bin/node
[root@elasticsearch-slave ~]# ln -s /root/nodejs/bin/npm /usr/bin/npm

[root@elasticsearch-slave ~]# ln -s /root/nodejs/bin/elasticdump /usr/bin/elasticdump

五、向master节点插入测试数据

1、插入测试数据,可根据下方数据修改索引名称,多导入几条

curl -X POST "10.10.10.1:9200/myindex/_doc" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe",
  "age": 30,
  "about": "I love to go rock climbing"
}'

2、查看索引信息

六、迁移数据 

方法1:单条迁移

elasticdump \
  --input=http://10.10.10.1:9200/my_test \
  --output=http://10.10.10.2:9200/my_test \
  --type=data \
  --limit=1000

验证:

方法2:集群迁移

#先导出所有索引名称

curl http://10.10.10.1:9200/_cat/indices?v |awk '{print $3}' >/root/es_migrate.txt

#集群迁移脚本(该脚本包括了迁移settings、analyzer、Mapping、data),可按需修改

vim qianyi.sh

#!/bin/bash

# 读取文件
file="/root/es_migrate.txt"

for line in $(cat $file); do
  elasticdump \
     --input=http://10.10.10.1:9200/$line \
     --output=http://10.10.10.2:9200/$line \
     --type=settings \
     --limit=4000
  elasticdump \
     --input=http://10.10.10.1:9200/$line \
     --output=http:/10.10.10.2:9200/$line \
     --type=analyzer \
     --limit=4000
  elasticdump \
     --input=http://10.10.10.1:9200/$line \
     --output=http://10.10.10.2:9200/$line \
     --type=mapping \
     --limit=4000  
  elasticdump \
     --input=http://10.10.10.1:9200/$line \
     --output=http://10.10.10.2:9200/$line \
     --type=data \
     --limit=4000
    echo "正在迁移: $line" >>/root/migrate.log
done < "$file"

#授权脚本

chmod 755 qianyi.sh

#执行迁移脚本,执行前可以将slave端的索引全部删除掉

sh /root/qianyi.sh

#slave端验证执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

改名叫热炸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值