本文首发微信公众号:飞总聊IT

某基金公司,基于CDH的大数据平台已经运行很多年了,现在没办法满足该公司的业务需求了。该基金公司希望替换这套老旧的大数据平台。

要理解为什么CDH落伍了,我们得简单回顾一下大数据技术的发展。

今天,任何一个公司要使用大数据技术的时候,可以很方便地去云厂商那里选择合适的云服务。

但倒退到10多年前,这是无法想象的。公司需要自己买物理机建集群,在集群上部署Hadoop生态圈内的开源项目。这个过程很复杂的。

于是以Cloudera为代表的Hadoop发行商们出现了,它们提供Hadoop发行版,降低企业使用Hadoop难度。Cloudera的代表产品叫做CDH,全称Cloudera Data Hub。

这个生意伴随云计算的兴起,越来越不好做了。Cloudera和Hortonworks在2019年合并。合并以后就推出了新产品CDP:Cloudera Data Platform。该产品没有开源,完全付费。同时,Cloudera很快停止了对CDH的支持。

很多CDH的客户,类似这家基金公司被困在CDH上,长期无法得到组件升级和技术更新。这严重影响了这些公司使用大数据平台。所以,这家基金公司决定将自己的大数据计算平台迁移至腾讯云大数据平台TBDS上。

为什么选择腾讯云大数据平台TBDS呢?主要是TBDS全面兼容CDH大数据平台,特别是兼容安全性和HIVE事务性能力。

从架构上看,和老旧的CDH架构比起来,TBDS大数据平台以及Wedata等组件打造的生态圈,功能更广泛,性能更强,能同时兼顾到采集、存储、计算、分析、运维以及敏捷开发,其中Spark的性能提升,对比CDH的版本超过两倍,融合Dataops敏捷开发能力,可以明显降本增效。

打开网易新闻 查看更多图片

该基金公司也对这个项目提出了一些非常有挑战性的要求,具体来说,首先是能够让公司内部多源异构数据形成统一归集库,其次要对性能要求高,要求批处理需要的时间从原来的6小时,提高到3小时,最后,时间也非常的紧,这个项目要在半年内完成。

在飞总看来,从一个大数据平台迁移到另外一个大数据平台,有一些固有的挑战,具体来说,我们首先需要确保两个大数据的平台能够相互兼容,否则的话,迁移无从谈起。

其次,我们需要确保元数据和数据都顺利迁移到目标平台,不出错。数据的访问权限控制也顺利迁移到目标平台。

再次,我们不仅仅需要确保数据是对的,还要确保在两个不同平台上用对应的计算引擎,通过这些数据计算出来的结果也是正确的。

最后,我们需要确保业务已经全部切去了目标平台。这样才可以安全下架原大数据平台。

当然,这些对腾讯大数据平台TBDS来说,都是可以做到的。

但是CDH到TBDS的迁移,也有一些特殊的挑战。这和CDH当初的技术选型,和现在大数据领域最终胜出的技术选型之间不一致是有关系的。

具体来说我们面临两个问题。第一个问题是,CDH作为Cloudera的产品,当初选择的权限管理是Apache Sentry这个项目,而Hortonworks选择的是Apache Ranger项目。最后的结果是,Apache Ranger赢得了这场战斗。所以目前大数据平台的标配是Apache Ranger。这也是腾讯云大数据平台TBDS的选择。

所以我们就需要把Apache Sentry换成Apache Ranger。这倒不是很难解决的问题。Apache Sentry可以导出权限配置文件,而Apache Ranger支持导入Apache Sentry导出的配置文件。

第二个问题更麻烦一点。对于交互式OLAP查询服务来说,Cloudera提出了自己的解决方案,先是发布了Impala这个查询引擎,后来又引入了Kudu作为高效存储。

但是,业界的发展也并没有如Cloudera的预期。Kudu这个存储引擎,还有一部分企业在使用,Impala这个软件,使用的企业就非常的少了,除了Cloudera本身投入很多以外,知名的企业几乎不存在。

而胜出的是Presto这个项目。腾讯云大数据平台TBDS也集成的是Presto。从Impala切换到Presto,还需要把数据从Kudu存成HIVE表才可以。这是整个迁移过程中比较大的变化。

当然,实际迁移过程中,除了上述两个比较特殊的挑战以外,其他的组件迁移也都涉及到大版本的升级,因为CDH是一个比较老的大数据平台,所以它的组件比如HDFS,HBase,HIVE等都是老版本了,而腾讯云TBDS用的版本比较新。新老版本之间的迁移,也是一个挑战。具体的细节参考下面的表。

打开网易新闻 查看更多图片

这个CDH迁移大致遵循了如下的过程。首先要完成TBDS集群的部署,完成CDH集群和TBDS集群的网络互通,完成迁移工具和CDH集群以及TBDS集群的网络互通。

在完成这个前置过程以后,首先让老的平台继续提供业务服务。同时布置迁移任务,完成数据的迁移。等数据迁移完成以后,对数据进行校验,确保数据迁移是没有问题的。

等数据迁移完毕以后,新平台搭建监控体系,能够对数据质量进行检测,让新平台和老平台同时运行工作任务一段时间,确保新平台的工作任务运行正常。

这个时候,进行工作流切换,让新平台开始提供业务服务,老平台继续运行,作为备份,以便新平台运行不正常的时候切换回来。同时检查是否还有应用没有迁移到新平台,及时迁移。

最后,当一切都正常以后,下线老的平台,完成资源回收,这样就完成了整个平台的迁移过程。

从CDH到腾讯云大数据平台TBDS的迁移,是一项非常有挑战的工作,通过迁移,该基金公司的数据平台从老旧的CDH,平滑过渡到了腾讯云大数据平台TBDS,有效地打破了内部数据孤岛,汇聚了全域数据。而且,由于TBDS的大数据生态组件版本高,也有效的提高了存算性能,为基金公司的业务提供了强有力的支持,快速变现了数据价值。客户对此非常的满意。

以飞总的经验来看,这次大数据平台迁移的成功,涉及到的东西还是非常多的,这其中有些任务是组件的大版本升级,这当然是不容易的。我亲自经历过的一次HBase的大版本升级,就一度出现无数的小问题,一路有惊无险的感觉。

但是,这里面最大的挑战是用Presto替换Impala。这个升级是有一定难度的,因为Kudu加Impala,虽然不是最主流的选择,但是性能上,尤其在某些特定查询的性能上是有优势的。

腾讯的大数据组件TBDS组件里整合了Alluxio这个数据湖加速器,对提升Presto的性能至关重要。按照我的理解,如果缺乏了Alluxio这个加速器的话,Presto对Impala的替换的挑战会更大。

腾讯云出版的最新一期《腾讯云工具指南》探讨立足“信息系统迁移”场景下各种痛点的解决方案,如何利用数据库、专有云、大数据等产品,解决信息系统迁移过程的业务不中断、数据完整性、系统兼容性,以及同城多活高可用等多个场景痛点,感兴趣的同学可以点击下方图片下载了解,尤其对于金融、制造、教育医疗等重点国产化行业的开发者,更是不容错过。

该基金公司大数据平台迁移到TBDS后,持续平稳运行了半年,各个业务线实现顺利对接。客户表示,“大数据平台迁移成TBDS后,在性能、稳定性、易用性等方面都有了很大的提升,有效打破了内部数据孤岛,实现了平台的自主可控。尤其值得一提的是,TBDS版本融合了更高版本的大数据生态组件,在存算性能方面提升10倍以上,有效帮助我们在BI报表、监管报送、精准营销等业务场景实现秒级以内的查询分析,挖掘更大的业务价值”。