第三方工具迁移或elasticsearch本身快照方式迁移,这里以第三方工具迁移为例,elaticsearch-dump 和esm 两个。
安装elaticsearch-dump
# 下载安装包
wget https://npm.taobao.org/mirrors/node/v10.15.3/node-v10.15.3-linux-x64.tar.gz
tar xf node-v10.15.3-linux-x64.tar.gz
#设置软连接
ln -s node-v10.15.3-linux-x64 node
#配置环境变量
vim /etc/profile
export NODE_HOME=/opt/node
export PATH=${NODE_HOME}/bin:$PATH
#生效
source /etc/profile
#安装elasticdump
npm install elasticdump -g #全局安装
elasticdump --help #查看帮助
直接从源es到迁移到新的es
# 备份 mapping
elasticdump --input="http://IP1:9200/MyIndex" --output="http://IP2:9200/MyIndex" --type=mapping
# 备份数据
elasticdump --input="http://IP1:9200/MyIndex" --output="http://IP2:9200/MyIndex" --type=data
过程如下:
# 获取所有的索引
curl ip1:9200/_cat/indices|cut -d ' ' -f 3 >./indices.txt
#遍历每一个索引然后将数据导入到新的es集群中
while read line
do
elasticdump --input="http://ip1:9200/$line" --output="http://ip2:9202/$line" --type=mapping --limit=2000
if [ $? -eq 0 ] ; then
elasticdump --input="http://ip1:9200/$line" --output="http://ip2:9202/$line" --type=data --limit=2000
fi
done < ./indices.txt
导入导出时会显示 每次操作的 object数据(默认为100),1万条数据用时1分30秒,如果调大,设置--limit参数既可。
esm工具
esm -s http://172.21.167.11:9200 -d http://10.101.152.22:9200 -x xx1 -y xx1 -f --copy_settings --copy_mappings --refresh -w=5 -b=10 -c 3000