elasticsearch数据迁移

28 篇文章 0 订阅

下面介绍两个工具对Elasticsearch数据进行迁移:

  • elasticdump
  • elasticsearch-exporter

elasticdump

安装步骤

yum install epel-release
yum install nodejs
yum install nodejs npm
npm install elasticdump  
  • 如果出现这个错误:
    a、没有package.json这个文件。可以使用npm init -f命令生成一下
    b、relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libss
    先安装openssl 命令:yum install -y openssl 然后安装ws 命令:npm install ws

如果安装成功,elasticdump的默认路径在node_modules/elasticdump/bin,首先打开目录

cd node_modules/elasticdump/bin  

执行下面语句可以把数据迁移到目标机器

./elasticdump  --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=data 

参数说明(可以访问https://www.npmjs.com/package/elasticdump查看)

这一步是迁移到新索引的命令,把192.168.1.1的original索引迁移至192.168.1.2。 需要注意的是如果只使用这个命令的话,目的索引必须先手动创建一下mapping,不然迁移过去类型会自动判断,date类型判断成string等等

如果你很懒你不想自己创建索引,那么你可以在执行上述命令前执行以下命令:

./elasticdump  --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=mapping  

不一样的地方就是--type=mapping ,意思是把原始索引originalmapping结构迁移给目标索引newCopy

如果索引很多,你还是懒得一个个去迁移,那么你可以改用这个命令:

./elasticdump  --input=http://192.168.1.1:9200/ --output=http://192.168.1.2:9200/ --all=true  

加个--all=trueinputoutput里不需要把索引名加上,这样就可以自动把原机器上的所有索引迁移到目标机器

下面补充一个运行脚本,从192.168.1.10把数据导入到192.168.1.11

  • 导入索引 --type=mapping
for index in $(cat import_index.txt | awk '{print $1}' );do
	echo ${index}
	./elasticdump --ignore-errors  --input=http://192.168.1.10:9200/${index} --output=http://192.168.1.11:9200/${index} --type=mapping
done
  • 导入数据--type=data
for index in $(cat import_index.txt | awk '{print $1}' );do
	echo ${index}
	./elasticdump --limit=1000 --ignore-errors  --input=http://192.168.1.10:9200/${index} --output=http://192.168.1.11:9200/${index} --type=data
done

Elasticsearch-exporter

安装步骤:

npm install nomnom  
npm install colors  
npm install elasticsearch-exporter --production  

然后执行命令脚本

node exporter.js -a <source hostname> -b <target hostname> -p <s port> -q <t port> -i <s index> -j <t index>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值