无论才能、知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。

关于不同版本es数据迁移的问题

Elasticsearch | 作者 风吟 | 发布于2017年08月22日 | 阅读数:5195

由于项目需要,得把一个项目的es(1.x)的数据迁移一个新的项目(es 5.5.1)中去。使用的snapshot快照备份的方式,直接把备份数据打包拷一份到目标服务器去。 结果发现版本不一致,快照备份生成的备份文件格式什么的都不一样。
请教各位有没有什么好方法来进行迁移。
由于题主也是新手,目前能想到的就是部署个1.x版本的es,把数据迁移到这个es上面去,然后升级到5.x
已邀请:

exceptions - 。。。

赞同来自:

你好,我遇到的情况是将数据从2.x迁移到5.x,我没试过1.x的,猜测可能差不多,你试一试看看,也许能行。
我是按照索引来进行迁移的。
针对较小的索引通常在100G以下的话,可以使用elasticdump这个工具来进行迁移,很方便,详细可以在网上查找资料。如果索引较大可能会出现错误(我反正是出现过好多错误,elasticdump突然停了...)。这个时候我是用spark导入的。具体做法是通过spark从es中将数据读出来,写成文件(一般是parquet文件,json好像也可以),然后在用spark将数据加载到新的es集群中去,虽然有时也会失败,但是能成功(elasticdump处理大索引就没成功过。。。)

你可以先试一试
spark最好是standalone或者运行在yarn上,好像local模式也可以。前提是要下载对应的es-spark jar包

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

也可以通过java程序读,再写的方式。中间做好字段匹配。

要回复问题请先登录注册