一个移动互联网数据分析公司的架构实践
讲师:
所属专题:
友盟数据统计分析系统的整体架构,包含SDK,实时计算系统,离线计算系统等几部分。从2010年4月公司成立以来,每个部分的系统都在根据实际情况升级和变化,我们的出发点一直是:准确,高效,稳定,且易于维护。SDK方面,我们进行了模块化的划分,便于维护和开发者自行组合选择。同时支持JSON和Thrift协议,兼顾数据包大小和老开发者的兼容需求。对SDK数据包的结构和校验方式有较为复杂的设计,以防止恶意刷数据的行为。
实时计算系统方面,我们的对外接入从BGP八线改造成了BGP八线+双线的方式。并且大量使用开源框架和系统搭建,包括Finagle、Kafka、Storm和MongoDB。为了应对设备标识系统的复杂情况,我们还专门设计了一个UMID系统。离线计算方面,我们主要基于Hadoop生态系统打造,使用到的技术包括Hadoop、HBase、Elephant Bird和ProtoBuf等。利用压缩方式的改进,从LZO到LZMA,我们节省了大量冷数据存储空间。我们自行研发的任务调度器满足了日常任务调度和异常情况下重跑数据的调度需求。我们还研发了自己的查询中间层使得后台直接使用HBase并对前端的查询接口保持一致。此外,我们还做了一些Hadoop/HBase源码级的改造,以使得系统的运行更适应自身硬件条件。
友盟高级技术总监
互联网从业多年,先在微软亚洲研究院研究搜索引擎网页排序算法,后加入百度搜索新产品部,从事百度社区类产品的技术研发工作,2009年转战百度基础架构部,任项目经理,带领团队从事百度底层分布式系统、底层通用库和通用模块的研发。2011年6月加入友盟,从零开始组建团队建设友盟离线数据挖掘和分析平台。目前任友盟高级技术总监。对能改变人类实际生活的技术方向保持浓厚兴趣。