资讯专栏INFORMATION COLUMN

Elasticsearch数据迁移工具之ESM

IT那活儿 / 3385人阅读
Elasticsearch数据迁移工具之ESM

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!

在使用Elasticsearch的时候不可避免的会涉及到集群的升级或者是业务的迁移等场景,此时就需要对数据进行迁移,es数据迁移的工具有很多比如reindex、esm、elasticdump、logstash和快照等方式。

使用ESM的优势是针对少数业务迁出,索引和数据相对较少,不需要修改ES配置文件不用重启集群,降低数据迁移对集群其他业务的影响的背景下相对来说速度较快的一种方案。

有数据测试表示迁移100W条数据ESM的速度仅次于reindex,接近logstash的两倍之快,当然这些与网络环境和硬件有必然的关系,我们在这里仅做参考即可。




01


实验环境及准备


1.1 本次实验环境
本地环境:
云环境:
ESM版本:0.5.0
1.2 实验前准备
1.2.1 搭建两套ES集群,在这里不做演示。
1.2.2 上传esm的tar包并解压。
1.2.3 查看一下帮助文档并确认安装成功。
1.3 ESM各个参数用法简介

02


实验案例


话不多说上实验!
Demo1
1)创建一个索引,设置主分片为1,副本分片为2。
2)将索引导出到本地 -o将源索引的文档输出到本地文件。
./bin/esm -s http://192.168.1.20:9200 -m elastic:123456 -o wsq_json.out -x wsq_esm_inbdex
3)删除索引。
4)将下载到本地的索引再进行导入。
./bin/esm -i wsq_json.out -n user:paswd -d http://192.168.1.20:9200
5)此时的索引主分片为1,副本为1。
由此可得知导出的数据并不会将其属性也就是设置的mappings和setting导出,导入数据则会使用es默认分片数进行创建索引。同时也验证了该工具离线本地迁移的可行性。
Demo2
1)添加kibana的测试数据集来做测试。
2)测试与云服务器kibana服务的网络联通性。
3)将w:并发数设置为10,b:bulk大小设置为 10M ,scroll批量值大小设置为10000。
由于实验环境的虚拟机配置比较低,直接给整趴一个节点并报错如下,如果在生产环境一定要根据硬件调整传输参数的大小,还有一个错误:复制索引参数为-x,这里使用了-o,这里参数如果没跟对轻则超时报错,重则节点挂掉。
4)把节点拉起来继续开干。
第一个索引传输的时候是正常的,当传输测试数据的时候发现Bulk少了2,在云服务器查看索引已经正常传输过来,此时的索引其实没有完整的传输过来。
将索引保存到本地,此时是正常的。
怀疑和Bulk的参数设定有关  Bulk默认大小为5,将Bulk调至100,则可以正确传输。


03


总结分析


使用ESM的时候支持指定集群任意节点,所以要选择相对来说压力较小的节点作为数据迁移的源节点较好。
数据迁移要根据场景选择最适合的工具和方法才能达到最好的效果。


end




本文作者:王思强

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129638.html

相关文章

  • JavaScript 模块化现状

    摘要:比如,这种模拟并不符合某些边缘情况。然而,使用,结果是在引导模块时,将指向,与使用的行为一致。这将更容易完成代码库的过渡,并使成为可能。 原文作者:Johannes Ewald @Jhnnns 原文链接:The state of JavaScript modules 已获原作者授权翻译及发布 showImg(https://segmentfault.com/img/bVOpwz?w...

    draveness 评论0 收藏0
  • Vue源码目录结构

    摘要:运行时用来创建实例渲染并处理虚拟等的代码。基本上就是除去编译器的其它一切。版本可以通过标签直接用在浏览器中。为这些打包工具提供的默认文件是只有运行时的构建。为浏览器提供的用于在现代浏览器中通过直接导入。 Vue版本:2.6.9 源码结构图 ├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文件 ├─ .github ...

    freewolf 评论0 收藏0
  • Vue源码目录结构

    摘要:运行时用来创建实例渲染并处理虚拟等的代码。基本上就是除去编译器的其它一切。版本可以通过标签直接用在浏览器中。为这些打包工具提供的默认文件是只有运行时的构建。为浏览器提供的用于在现代浏览器中通过直接导入。 Vue版本:2.6.9 源码结构图 ├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文件 ├─ .github ...

    icattlecoder 评论0 收藏0
  • Vue源码目录结构

    摘要:运行时用来创建实例渲染并处理虚拟等的代码。基本上就是除去编译器的其它一切。版本可以通过标签直接用在浏览器中。为这些打包工具提供的默认文件是只有运行时的构建。为浏览器提供的用于在现代浏览器中通过直接导入。 Vue版本:2.6.9 源码结构图 ├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文件 ├─ .github ...

    jifei 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<