elasticsearch数据迁移

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: elasticsearch数据迁移

下面介绍两个工具对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>
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
4月前
|
自然语言处理 API 开发工具
Elasticsearch 重建索引 数据迁移
【7月更文挑战第1天】Elasticsearch 更改索引结构、重建索引、数据迁移操作等
|
索引 Python
阿里云ElasticSearch索引元数据迁移-基于Python3原生类库
阿里云ElasticSearch索引元数据迁移-基于Python3原生类库
|
JavaScript 数据库 数据安全/隐私保护
Elasticsearch数据迁移
今天换了新的ES集群,要把原集群的ES数据库的数据迁移到新的集群上,经过查找elasticdump使用的人不少,所以今天大家和我一起来学学elasticdump吧!
388 0
Elasticsearch数据迁移
|
容器
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(六)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(六)
164 0
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(六)
|
JSON 数据格式 索引
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(一)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(一)
104 0
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(一)
|
JSON JavaScript API
Elasticsearch 跨集群数据迁移方案总结
Elasticsearch 跨集群数据迁移方案总结
649 0
Elasticsearch 跨集群数据迁移方案总结
|
JSON JavaScript Java
Elasticsearch 跨集群数据迁移方案总结
Elasticsearch 跨集群数据迁移方案总结 -- elasticsearch-dump、reindex、snapshot、logstash
2457 0
Elasticsearch 跨集群数据迁移方案总结
|
Docker 容器
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(八)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(八)
150 0
|
索引
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(七)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(七)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(五)
ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器(五)
116 0