不为失败找理由,要为成功找方法。

es数据迁移

Elasticsearch | 作者 zmyluckboy | 发布于2018年04月24日 | 阅读数:7829

存在两个配置完全一样的es集群1和集群2,现在要把集群1的数据备份到集群2,需要用java代码每隔一段时间去集群1去数据然后存到集群2上,利用集群2上的数据做离线分析,请问有什么高效一点的方法和建议吗?
已邀请:

yayg2008

赞同来自: zmyluckboy

方法一:
在写ES1的时候同时写ES2,比如使用mq双写;
方法二:
定时对1进行Snapshot,然后在2进行resotre。

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

赞同来自: zmyluckboy

reindex 和query 结合使用

JackGe

赞同来自:

如果数据是先写入消息队列,然后再写入到es的话,可以使用不同的消费组实时双写到两个es集群。
如果数据是直接写入es的话,可以编写脚本用crontab定时调用,脚本中实现reindex方式把数据从A集群搬移到B集群,reindex时可以采用增量方式(数据没有更新操作,query语句中指定时间段)或者全量方式(数据有更新操作)。
如果es数据是保存在hdfs上,一般是保存到本地磁盘的话,可以定期对集群A进行snapshot进行备份,集群B进行restore。
如果数据量不是很多,也可以拷贝索引数据到另一个集群中,集群B再加载新的索引。

要回复问题请先登录注册