问题来源
目前公司运维着两个版本HBase,分别对应社区的94版本和1.1版本。从16年开始推广新版本,新版本在功能和性能上都比94好,未来方向也在新版本上,所以有些业务需要从94版本升级到新版本,如何解决业务版本升级是团队面临的一个问题?
版本升级方案比较
版本升级有两种方式,原地升级和迁移数据升级,原地升级就是直接在原来的集群从94版本升级到1.1版本,而另一种方式就是通过把数据从94版本迁移到新版本。
- 原地升级
从94版本原地升级到1.1,需要升级HDFS和HBase,但是目前由于94版本比较低,从94升级到96的时候是没有办法滚动升级的,也就是说在升级期间业务肯定不能读写了。那么什么情况下适合原地升级?其实在双11之前,我们就采用过原地升级的方式升级推荐搜索集群。推荐搜索比较特殊,除了是主备集群之外,整个业务可以控制数据推送,以及随时切换流量的读写。所以,我们的任务就是在业务切换流量后,升级一个集群,完成之后升级另一个集群就可以。如果业务可以停止读写,那么原地升级是最简单的。但是大多数情况下,业务都不能停止读写或者长时间不读写。
- 为什么需要跨版本实时同步数据
目前94版本是几个业务共用一个集群,而且没有主备,更要命的是有些业务要求升级,而有些不需要,因此数据迁移是唯一的方案。但是迁移数据不是简单copy数据,除了跨版本之外,还涉及迁移原来数据和实时新增数据。找到一种方案解决跨版本迁移,包括迁移原来的数据是实时迁移数据,是解决