完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Elasticsearch中数据搬迁是工程师们经常会做的,有时是为了集群迁移、有时是为了数据备份、有时是为了升级等等,迁移的方式也有很多种,比如说通过elasticsearch-dump、通过snapshot、甚至是通过reindex的方式来做。今天为大家介绍另一种方案:用Logstash实现Elasticsearch集群快速迁移 我们希望通过logstash来做数据迁移本身的原理很容易理解,通过logstash从源elasticsearch Cluster读数据,写入到目标elasticsearh Cluster中,详细操作如下: 在logstash的目录下创建一个logstash的用于数据同步的conf文件 vim ./logstash-5.5.3/es-es.conf配置conf文件,由于我们只需要做index搬迁,所以目标Cluster和源Cluster的index命名相同即可。 input { elasticsearch { hosts => ["********your host**********"] user => "*******" password => "*********" index => "logstash-2017.11.07" size => 1000 scroll => "1m" }}# 该部分被注释,表示filter是可选的filter {}output { elasticsearch { hosts => ["***********your host**************"] user => "********" password => "**********" index => "logstash-2017.11.07" }}conf文件配置完成后执行logstash bin/logstash -f es-es.conf执行这句指令时,有时会遇到如下的报错信息 [FATAL][logstash.runner] Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting.这是因为当前的logstash版本不支持多个instance共享一个path.data,所以需要在启动时,命令行里增加"--path.data PATH ",为不同实例指定不同的路径 bin/logstash -f es-es.conf --path.data ./logs/如果执行顺利,执行下面这个命令就可以在目标的elasticsearch中看到对应的index curl -u username:password host:port/_cat/indices以上介绍了如何通过logstash来迁移elasticsearch中指定的index,下面介绍一个实用的场景: **很多自建了Elasticsearch客户最近都会关注到阿里云Elasticsearch这款产品。想要使用时却遇到了一个如何把自建中的数据迁移到阿里云Elasticsearch的困惑。下面介绍一下如何通过logstash快速的搬迁云上自建的Elasticsearch中的index数据。 ** 这个方案的逻辑很简单,拆解开就是配置N个es-to-es的conf文件,但这样做很繁琐。其实logstash提供了批量做这件事情的能力,为此需要提前介绍三个重要概念:
由于metadata的特性,我们可以在output中直接“继承”input中的index、type信息,并在目标Cluster中直接创建和源Cluster一摸一样的index和type,甚至是id。
示例配置代码如下: input { elasticsearch { hosts => ["yourhost"] user => "**********" password => "*********" index => "*"#该通配符代表需要读取所有index信息 size => 1000 scroll => "1m" codec => "json" docinfo => true }}# 该部分被注释,表示filter是可选的filter {}output { elasticsearch { hosts => ["yourhost"] user => "********" password => "********" index => "%{[@metadata][_index]}" } stdout { codec => rubydebug { metadata => true } }}执行后,logstash会将源Cluster中所有的index全部copy到目标Cluster中去,并将mapping信息携带过去,随后开始逐步做index内的数据迁移。
|
|
相关推荐 |
|
PD诱骗取电芯片_PD_Sink端芯片之XSP05实战应用电路
1488 浏览 1 评论
BLDC、PMSM电机智能栅极驱动芯片之TMC6140知识分享
402 浏览 0 评论
国产电源芯片DP4054 软硬件兼容TP4054 规格书资料
967 浏览 0 评论
2463 浏览 3 评论
1050 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 08:49 , Processed in 0.291832 second(s), Total 37, Slave 27 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号