互联网技术移动大数据平台的架构实践与

本文是友盟公司数据平台负责人吴磊的采访。转载自51CTO。

移动大数据分析平台的架构思想及演进

当问及加入友盟之后和之前工作有何不同时,吴磊这样回答,“之前工作主要是做数据搜索,大数据的源头和搜索引擎有分不开的联系,可以说,大数据是从搜索开始的,加入友盟之后,工作和之前有很多相似之处,只是最终的目标不一样。友盟架构很多方面和搜索引擎架构是有很多共通性的,但友盟有更多自己的特点,因为其更注重于数据分析。”

Lambda混合架构思想

友盟数据平台整体架构

友盟的架构思想是借鉴了Lambda的混合架构体系,其核心思想是既能兼顾低延迟的计算需求,同时也能具有处理需要处理全量数据的能力,最后通过将两部分的视图聚合起来提供外部服务。Lambda架构是由批处理层,快速处理层,和服务层三部分组成,整个体系也比较简单,通过视图层的聚合就能将两部分计算结果合并起来提供一个完整的视图。系统维护的代价也比较低。

友盟数据流水线

结合友盟的业务架构和Lambda架构思想,最终的系统如上图,友盟为APP集成提供手机、平板、盒子的SDK,APP通过SDK将日志返回到平台的Nginx,负载均衡之后送到基于Finagle框架的日志接收器,之后流入数据接入层。使用两个Kafka集群来承担数据接入功能,上面Kafka集群被实时计算消费,下面kafka用于离线数据消费,两个集群之间通过Kafka的Mirror功能进行同步。主要目的是IO负载的分离,避免离线部分过大的IO请求影响到实时计算部分及实时离线部分的业务解耦,方便两部分业务独立发展。接下来是数据计算层,分别由离线计算层和实时计算层组成。

离线部分,主要是基于HadoopMapreduce框架开发了一系列的MR任务。同时使用Hive建立数据仓库,使用pig进行数据挖掘,现在也在逐步使用Spark来承担数据挖掘相关的工作。实时部分是通过storm来进行流式计算。实时部分,最终计算结果会存储到MongoDB,离线部分的数据存储在HDFS。离线分析的结果存储在HBase。因为HBase缺少二级索引的相关功能,所以引入了ElasticSearch来为HBase相关表提供索引查询功能。最后通过统一的RESTService来对外提供数据服务。

数据接入层让Kalfka集群承担,后面由Storm消费,存储在MongoDB里面,通过Kafka自带的Mirror功能同步,两个Kafka集群,可以分离负载。计算有离线和实时两部分,实时是Storm,离线是Hadoop,数据挖掘用Hive,分析任务,正在从Pig迁移到Spark平台,大量的数据通过计算之后,存储在HFDS上,最后存储在HBase里面,通过ES来提供多级索引,以弥补HBase二级索引的缺失。

友盟移动大数据平台在数据采集、清洗、计算方面踩过的坑

1)数据采集

数据采集面临以下三大挑战:

大流量。友盟服务大量开发者,接受数以亿计的设备发来日志,每天要处理80亿次对话,数据量非常大。

高并发。如用户在早上上班路上,中午吃饭后以及晚上睡觉前,是使用的高峰期,这些时候会造成出非常高的并发请求。

扩展性。因为移动互联网是在高速发展的,最开始一台机器发展可能需要10台,20台,如果系统没有横向扩展能力将会是很痛苦的事情。

为了快速上线,友盟在年的数据平台是基于RoR开发,在后台通过Resque进行一些离线的处理。这个架构很快就跟不上移动互联网的发展速度,面临巨大的数据压力,不调整是不行的。之后就切换到基于FinagleServer的日志服务器,FinagleServer是Twitter开源出来的一个异步服务器框架,很适合移动互联网访问特点:高并发,小数据量。切换到FinagleServer之后,单台服务器的处理能力得到了极大的提升。同时日志收集服务的无状态特性可以支持横向扩展,即使面临非常高压力时也可简单的通过增加临时服务器来应对。

友盟主要采集数据以下三方面:

设备的基本情况。如说其CPU、型号、内存大小等基本数据。

启动数据。如APP在何时何地启动,启动次数等。

事件数据。事件需要根据每个APP不同来自己定义,以APP开发者自身需求为依据。如需知某些事件发生的次数或时间等,根据要求按需发送。

2)数据清洗

友盟通过三个方面对数据清洗,分别是:唯一标识、数据标准化、数据格式。

唯一标识。移动统计分析可以使用设备ID来作为标识符。但也会遇到问题,吴磊在采访中以Android设备为例,对这部分进行了详细分享:安卓设备通常可以拿来作为设备标识的是IMEI,MAC,和AndroidID,可安卓设备的碎片化和开放性,导致得到数据变得不是那么容易。由于Android的开放性,各种刷机rom横行,会出现一些设备MAC地址完全一样的情况,还有部分山寨机则会出现公用IMEI的问题。同样还有一些安卓设备是没有IMEI的,如平板和盒子。针对这一问题,友盟采用统一计算和机器学习来应对,统一计算就是综合以上提到的三种设备ID,按一定的算法来计算出唯一的ID,对于重复的IMEI,MAC地址,AndriodID等数据加入计算黑名单,在计算时不予采用。机器学习就是通过基于图的分析方法,来将计算设备标识。

数据标准化。型号、地域识别、时间识别三角度来考虑

型号。采访中,吴磊表示,友盟设备指数,是一个在移动行业







































白点
北京中医医院看白癜风



转载请注明:http://www.92nongye.com/gaishu/204615490.html