es 平滑升级,从1.7升级到5.5或6.x

匿名 | 发布于2019年01月09日 | 阅读数:434

每个集群数据量大概50T,不能接受全机房停写升级到办法,有没有平滑点的滚动升级方法。。。
已邀请:

rochy - rochy_he@tw

赞同来自:

1.7 升级到 5.X,官方推荐使用 reindex 的方案
参考地址:https://www.elastic.co/guide/e ... .html
 
个人也推荐使用 reindex 的方案,因为 1.X 到 5.X 甚至 6.X,索引的数据类型发生了变化,且 6.X 已经不支持多 type 了;
reindex 可以对数据进行重新整理,按照新的数据类型等进行重建
 
此外 reindex 不需要重启集群,当 reindex 结束后,即可直接切换到新集群;
PS:在 reindex 的时候,请将新的索引请求转发一份到新集群
 

zqc0512 - andy zhou

赞同来自:

5.x 到6.x可以平滑 1.x的话不能够平滑了
reindex  你要先测试 6.x 目前影响变化最大的应该就是6.x不支持多 type 你若是用了这玩意需要重新处理下。

fanmo3yuan

赞同来自:

全量数据使用reindex,但是如果无法停写的话,可能需要依赖业务记录一份增量数据用于回放,常用的是日志和mq。比如在写数据到老集群的时候先写到mq,然后由新老集群分别消费,这样在全量数据进入新集群后,可以慢慢去消费增量数据。但是这个方案的缺点是当业务强依赖es的写入事物时,可能不合适,写mq成功并不代表写es成功,业务无法做写失败处理。可以老集群直接写es,成功后在写mq供新集群消费。
写mq的方案强依赖一个特点,就是不会用ES做计算去改变里面的doc,比如update_by_query,scrpit改变doc值等,所有的doc必须是外部计算好。整体方案略微有些复杂。

要回复问题请先登录注册