elasticsearch索引迁移elasticdump工具安装及跨集群数据迁移

ElasticDump是一个ElasticSearch的数据导入导出开源工具包,方便使用。

官方地址:官方地址:https://github.com/taskrabbit/elasticsearch-dump
注意:在迁移前需要将索引提前创建完成,直接迁移会导致索引无法正常使用

ElasticDump依赖NodeJs环境,首先安装NodeJs

    [root@node1 nodejs]#  wget https://npm.taobao.org/mirrors/node/v10.15.3/node-v10.15.3-linux-x64.tar.gz

下载NodeJs安装包,解压NodeJs

    [root@node1 nodejs]#  tar -zxf node-v10.15.3-linux-x64.tar.gz 

使用ln -s 软连接命令,设置NodeJs环境

    [root@node1 nodejs]# ln -s /home/console/nodejs/bin/node /usr/local/bin/
    [root@node1 nodejs]# ln -s /home/console/nodejs/bin/npm /usr/local/bin/
    [root@node1 nodejs]# node --version
    v10.15.3
    [root@node1 nodejs]# 

设置完NodeJs环境,下载elasticdump

    [root@node1 nodejs]# pwd
    /home/console/nodejs
    [root@node1 nodejs]# npm install elasticdump -g
    #elasticdump安装完成目录
    [root@node1 nodejs]# ls /home/console/nodejs/lib/node_modules/elasticdump/bin/elasticdump
    /home/console/nodejs/lib/node_modules/elasticdump/bin/elasticdump
    [root@node1 nodejs]# cd  /home/console/nodejs/lib/node_modules/elasticdump/bin
    [root@node1 bin]# pwd
    /home/console/nodejs/lib/node_modules/elasticdump/bin
    [root@node1 bin]# ll
    总用量 20
    -rwxr-xr-x 1 root root  3561 10月 26 1985 elasticdump
    -rwxr-xr-x 1 root root 13012 10月 26 1985 multielasticdump

使用ln -s 软连接命令,设置elasticdump环境

    ln -s  /home/console/nodejs/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/

设置完环境,使用elasticdump --help命令,查看elasticdump 安装是否成功


image.png

1 . 主要参数说明

    --input: 源地址,可为ES集群URL、文件或stdin,可指定索引,格式为:{protocol}://{host}:{port}/{index}
    --input-index: 源ES集群中的索引
    --output: 目标地址,可为ES集群地址URL、文件或stdout,可指定索引,格式为:{protocol}://{host}:{port}/{index}
    --output-index: 目标ES集群的索引
    --type: 迁移类型,默认为data,表明只迁移数据,可选settings, analyzer, data, mapping, alias

2 . 迁移单个索引

以下操作通过elasticdump命令将集群172.16.0.39中的companydatabase索引迁移至集群172.16.0.20。注意第一条命令先将索引的settings先迁移,如果直接迁移mapping或者data将失去原有集群中索引的配置信息如分片数量和副本数量等,当然也可以直接在目标集群中将索引创建完毕后再同步mapping与data

        elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=settings
        elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=mapping
        elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=data

3 . 迁移所有索引:以下操作通过elasticdump命令将将集群172.16.0.39中的所有索引迁移至集群172.16.0.20。 注意此操作并不能迁移索引的配置如分片数量和副本数量,必须对每个索引单独进行配置的迁移,或者直接在目标集群中将索引创建完毕后再迁移数据

        elasticdump --input=http://172.16.0.39:9200 --output=http://172.16.0.20:9200

elasticdump迁移elasticsearch数据摘抄自bellengao博客

你可能感兴趣的:(elasticsearch索引迁移elasticdump工具安装及跨集群数据迁移)