ES2.X 到 ES5.x的一次数据迁移

gradle的安装

链接地址:https://gradle.org/releases/

下载binary-only

这里写图片描述

解压下载的压缩包到指定位置,比如:

D:\program\gradle-4.9\

配置环境变量

右键计算机->属性->高级系统设置->环境变量,在系统变量区域,点击新建,输入变量名为:GRADLE_HOME,变量值为:D:\program\gradle-4.9\(根据实际情况)。找到Path,在原始内容基础上加入%GRADLE_HOME%\bin;,必须以分号结束。

测试配置是否成功

打开一个新的cmd命令窗口或者powershell或者其他命令行工具(比如cmder),输入命令gradle -v,如果出现类似下面的消息,则说明配置成功
这里写图片描述

安装elasticbak

下载elasticbak

用git 命令下载

git clone https://github.com/jiashiwen/elasticbak 

这里写图片描述

进入安装目录

cd elasticbak

用gradle编译

gradle clean build

注意此处有坑:由于gradle编译时访问的中央maven库http://10.207.2.29:8081/repository/maven-public,在国内可能会导致编译缓慢甚至失败,本人就是失败的那种!!
解决方法:找到gradle的配置文件路径,例如Windows中的路径为C:\Users${你的用户名}.gradle,新建一个文件名为init.gradle,用记事本或者类似的编辑器打开,输入以下内容:

allprojects{
  repositories {
    def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
      all { ArtifactRepository repo ->
        if(repo instanceof MavenArtifactRepository){
          def url = repo.url.toString()
          if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
            project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
            remove repo
          }
       }
    }
    maven {
      url REPOSITORY_URL
    }
  }
}

重试编译
这里把下载地址改为阿里云,然后编译快得飞起!!

Gradle错误:编码GBK的不可映射字符
在项目build.gradle下添加下面代码




tasks.withType(JavaCompile) {  
    options.encoding = "UTF-8"  
} 

再次编译
编译结束后会看到build/libs/elastictbak-1.0.jar jar包,接下来就可以用这个jar包迁移数据了

数据备份

java -jar elasticbak-5.5.1.jar --exp --cluster weicluster --host 10.3.69.137 --filesize 1000 --backupdir ./esbackupset --backupindexes "*" --threads 4

注意,如果集群中没有索引,那么备份目录esbackupset不会创建的

数据恢复

java -jar elasticbak-5.5.1.jar  --imp  --cluster elasticsearch  --host 10.3.69.138  --restoreindex test1 --backupset esbackupset/test1  --metafile esbackupset/test1/test1.meta --threads 4

工具参数说明

  • –backupdir

    备份目录,该目录下生成索引备份集(以索引名称命名的目录),该备份集包括索引元数据备份文件(indexname.meta)和数据备份文件(indexname_num.data)
    Default: ./

  • –backupindexes

    备份索引。可以用’,’分割,支持通配符,如果备份集群中有索引则用’”*”’,注意必须用双引号

  • –backupset

    恢复索引时需要指定的备份集路径

  • –cluster

    Elasticsearch 集群名称
    Default: elasticsearch

  • –exp

    备份模式,与–imp不同时出现
    Default: false

  • –filesize

    每个data文件的文档数量,也是每次es批量去除数据的数量,默认 500
    Default: 500

  • –help

    Default: false

  • –host

    Elasticsearch cluster 中masterip地址,默认为 ‘127.0.0.1’.
    Default: 127.0.0.1

  • –imp

    恢复模式 ,与–exp不同时出现
    Default: false

  • –metafile

    恢复索引时需要指定的meta文件,用于重建索引setting、mapping
    Default:

  • –port

    Elasticsearch 端口,默认 9300
    Default: 9300

  • –restoreindex

    需要恢复的索引名称,可以与备份索引名称不同

  • –threads

    并发线程数
    Default: 2

猜你喜欢

转载自blog.csdn.net/qqqq0199181/article/details/81808745
今日推荐