banner

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?

作者: afenxi来源: afenxi时间:2017-07-01 14:21:330

摘要:近日,2016全球软件开发大会在北京国际会议中心举行,易观CTO郭炜发表了主题为《混合云大数据迁移实践》的演讲,主要给大家分析了大数据迁移的几个难点,郭炜先生还就易观智库如何做到混合云的数据迁移做了详细介绍

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网2016年混合云成为最热门的IT流行语之一。什么是混合云?混合云能否保证云服务安全又有效?

近日,2016全球软件开发大会在北京国际会议中心举行,易观CTO郭炜发表了主题为《混合云大数据迁移实践》的演讲,分享了他在易观使用混合云的经验和感受。

以下是演讲全文:

为什么使用混合云?

非常高兴和各位分享混合云的大数据迁移,这里边提到两个事,一个是混合云,一个是大数据迁移。

为什么用混合云?易观的数据量非常大,来自于手机端APP,嵌入易观的SDK,设备数覆盖了7.5亿,月活1.5个亿,日活基本上过千万了,这些数据实时上传到云端,有一部分要做实时计算,有一部分做批量计算,现在对我来讲挺大量的请求。

其实我们在国内各种公有云上面,迁移了一圈,最后没有办法,我们发现现在国内整个环境里面,在做大数据的高性能、高并发、高IO计算的时候,混合云是唯一一个比较好的出路,一方面用了底下大数据平台,另一方面跟公有云打通,既享受到公有云对我们的免维护,可以很快的延伸,加上相关的产品,这样有一些好处。所以我们把公有云做好了,用混合云的架构处理我们大数据。

大数据迁移几个难点

这个时候面临一个问题,我们怎么把这个数据迁下来的?这里面其实有这样几个难点。

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网第一,大数据迁移和普通的数据库迁移不一样,历史的数据是PB级别的。因为过去数据库迁移,在一个机房里面表对表,或者旧系统对新系统,数据量几个T,现在大数据迁移不一样了,历史的数据是PB级别的,不能把这个数拿硬盘拷出来,这件事不太可能。

第二,这些数据不停运转,日处理已经超过10个T了,怎么保证这两个东西不要断线,不要影响整个生产环境的变迁?

第三,平均每秒钟70到100万次连接请求,如果两个系统做并行,怎么办?

并发量这么大,怎么让两个系统在做并行的时候,同时收到这些跨互联网的数据,而不是在一个机房里通过光纤连过去?我是通过异地互联网同时接收到大量数据的需求,公有云和混合云同时并行,这件事儿挑战也非常大,因为它有非常大的请求量。

第四,数据流式计算,迁的时候不能断了,断了以后用户反馈非常差,就会有一些问题。所以你得把它想象成平滑过渡的过程,把我们这个数据迁移做好。

数据量这么大,怎么迁移?

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网中间怎么迁呢?刚才说了几个难点,怎么搞定的?

第一,原始数据压缩同步。因为我是要跨互联网的,不能跑人家机房里拷,大家知道真正做大数据的时候分很多层同步,底层到中间的数据统一层,数据汇总层,数据的结果层,我们把原始的数据层,通过线下基层高性能的计算补这个数,往上追,这个时间通过互联网一点一点传,不论申请多大带宽都会非常大,互联网的带宽一会儿多一会儿少,这个东西传就会断掉,这个数据通过压缩传原始文件,重新做计算。

第二,数据验证。我们在不同层次里面设了一个指标,做了相关核心条数、DAU、MAU,设了100个指标核对每张表做的结果不一样,无论做大数据迁移还是小数据迁移,这件事儿都得这么干。难点来了,我怎么去把这个接口,这样大的并发,它是要做并行,我需要拷贝一份同样大量数据转发给原来的公有云上面,同时还要发给线下新的集群下面,把这两件事儿同时并行接收,原来一份数据拷出一份做两件事儿,我们那时候遇到巨大的考量,这么大量的数据并发,怎么把它复制出一份,给它分成两部分,同时两个系统并行的时候来接受,这是我们刚开始遇到挺大的难点。

为什么说NGINX不行?

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网在这里面可以开发一个服务,用它自己的代码,为什么不行,其实它的性能非常高,完全能满足刚才的并发请求量。我们的数据其实是百万次的请求,真正的数据请求比这个量还要大,每次APP传给我们数据的时候,都会回一条信息叫response,这个时候把本地缓存数据清空,如果没有返回response信息的话,一直把数据缓存在他的SDK里面。我在什么地方,有一个像简单的response,传到云端,云端NGINX反馈给response,会清空缓存。回到这个问题来讲,NGINX什么时候返回response,如果在这一层返回NGINX,因为这并发量非常大,怎么确保同样的数据在这台NGINX和这台NGINX对大量并发请求,同时能拿到这样的数据呢?

如果拿不到出现什么样的问题,我这部数据丢掉了,无论公有云端还是混合云端,这边的数据他这边给SDK说,这件事情我们收到了,那边数据回再传了,转发给这边的时候,由于量非常大,不是哪个需求都可以获得满足的,这个请求发现这个事儿不行,出现问题了,他把这个东西知道了,回不到这边了,这边反馈说已经做完了,这条数据丢掉了,同理这边也是,哪些数据保证我们原来混合云、公有云这两端数据一模一样呢?所以这个数据怎么保证在并行期间,这两个事情能对上,所以NGINX,虽然说它的转发效率很高,并行度很高,对于这个环境来来讲,没法满足我们的要求。

为什么Kafka不靠谱?

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网大家原来看到那个架构里边,我们把它升级变成Kafka,这边底下有Kafka,Kafka现在有一个工具叫mirror maker,首先说它这个工具,这个工具挺坑的,运行大量数据的时候根本不行,转不起来,它会到大概我们的并发量,大概十几分钟就报各种各样的错,每次都是如此。后来发现需要用Scala把头部和中部的原代码改一下,我的兄弟们对Scala又不太熟,干这件事儿看来不行,Kafka直接从这边把队列放上去,这件事儿是不灵的,这是原因之一。哪怕我们用了这个,把这个代码重新改一遍。

为什么还不行呢?我们这些全都是小包两条线通过互联网传的,一个地方在青岛,一个地方在北京,大量传输的网络无法满足小包的转发请求。我们后来自己还真写了一个小的程序,利用Java多线程,你会发现大家同步的时候,要不这儿多,要不这儿多,而且这个积压情况,每百万次或者80万次的请求,不是说我只是满足了五六十万次,它是十倍的差距,因为网络带宽,这种大量的小包请求非常敏感。所以造成我们在这两边的时候,差距特别大,一边查,一边速度消费很快完了,一边积压三个小时的数据五个小时的数据还没有,每天的数据都增加,现在三个小时没有传过去,再过一天变成六个小时,怎么保证刚才说的流失计算和相关的同步,这件事儿也不靠谱。

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网当然也有人问,这个架构不好,干吗单独设一个第三方接这个数据呢?现在换这个数据,这样的模式不好吗?我现在就是直接通过接收端搞一个,最后我去做相关的Kafka的时候,从这边接收完了之后放下来,结果还是一样的,你会看到我的这个互联网传下来的时候,在里边积压了大量的数据,根本消费不完,一天过去以后,这儿数据都处理完了,这边积压了半天数据根本没刷下来,这么大量小包并发传的话一定有这个问题。

第三,自创工具KICKER AA。

易观智库CTO郭炜:高难度混合云数据迁移,易观怎么做到的?-数据分析网我们自己写了工具,我们叫做KICKER AA。我后面讲一个非常稳定的架构。两边是两个Kafka的队列,这是我们在原来公有云端,这是我们线下混合云端,中间有几个部件,把里面消费原来相关的数据形成一些文件。因为我们现在发现通过小包的传输,特别大量百万次的请求传输,不靠谱,所以我们干脆先落成文件,小的请求先压缩,压成一个中量型的文件。

这时候有几个问题,怎么保证文件传输中间不丢。我们做同步的传输,特点就是数据特别大,怎么保持稳定?所以我们采取的策略最简、最优,我们没有用大程序就可以转起来,各种各样并发的请求对Kafka的压力,对文件传输的压力,只要有一个点有问题,整个队列全部出现问题,所以分了好几块。

我们先说说Consumer,干一件事儿读Kafka的数据,把它写到文件里面,这里边主要对网络运营进行处理,所有通过互联网传输的大数据,最大的隐患就是不知道这网什么时候好、什么时候坏。

第二个,File transfer就是做相关的传输,主要追加时间戳,如果消费端有问题,我们更新到临时文件里面,中间其实做一些简单的设置,传输的时候不是光传文件,因为传文件的时候不知道什么时候传完,我们加一些文件这样线下知道这件事情做完了,把数据再传到我们线下Kafka里面去。在线下文件队列,把刚才说的接收变成相关的数据文件,为消费者提供这样的东西,处理多个消费者的请求,刚才我们说,因为这个消费的时候,肯定不能通过这么大数据的并发,我们想在十分钟到十五分钟,从原来的公有云在混合云传下来,进入消费状态,让整个数据流能转起来,这件事得通过多个消费者干,一起并行跑起来。其实一开始也遇到了一些问题,我们刚开始的时候发现消费者数量控制多少,这个事儿其实是挺重要的事,如果多的话,文件服务器受不了,最后调了比较合适的数据量,把多个消费者做相关的消费,把文件并发给搞定。

后面解决问题,就是把消费通过多个线程放到Kafka里面去,只要进了线下的Kafka了,我们认为这个事儿基本上没有太大问题了,包括文件的管理细节,其实我们都是在这里面来做,我们传输的时候单个文件传输,不是并行文件传输,我们强调带宽的问题、稳定性问题,但是每个文件传输速度非常快,只要下来以后两边的消费和生产,这两边全是并行,中间传输是文件传输,这样最终达到的效果,整个传输刚才说的数量10到15分钟,完全可以同步到,从公有云,从青岛一直到北京,把整个数据并行起来,转起来。

大数据迁移的“果实”——易观方舟

我们看看最终迁了什么东西下来?因为易观过去都是在做分析报告检查,所以它把我们所有的移动客户端分析报告做了分析模型,做了易观方舟的东西,它的基本功能是免费的,是专门给开发者提供大数据分析的云服务。比如运营分析功能,会告诉你,你产品的月活、日活、用户画像怎么样。应用评级会告诉你,你的APP用户值不值钱,你的消费价值值多少,媒体价值值多少,这些都是易观背后给你背书的,当然还有一些社区论坛的东西。

运营分析、渠道分析、用户分析、提高品牌影响力,都可以用易观的东西。通过接入易观方舟,能够让你和VC进行对接,易观过去做分析报告,VC看我们分析的行业报告,现在易观通过一些程序化的方法,把它给你做起来。

我今天的分享这么多,技术问题大家可以随时和我们来做一些相关的讨论,现在易观的口号叫做会玩儿的大数据公司,我们有很多的大数据,如果想玩大数据可以加入易观,一起来玩易观的大数据,看我们玩出什么新花样。今天非常感谢各位。

来源:数据猿

banner
看过还想看
可能还想看
热点推荐

永洪科技
致力于打造全球领先的数据技术厂商

申请试用
Copyright © 2012-2024开发者:北京永洪商智科技有限公司版本:V10.2
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限