浅谈移动应用分析平台中的开源系统实践

原文做者:友盟数据平台架构师吴磊数据库

数据是移动互联网的主旋律,面对海量的数据,友盟平台的开源大数据系统是如何实践的?日前,友盟数据平台架构师磊叔在 2015 年 DTCC
数据库技术大会上分享了他的一些感想。架构

从友盟 24 小时采样数据绘成的全球移动互联网用户活跃度的图像中,能够看出,中国居于全球最为突出的区域。仅友盟数据平台就已经累积了超过 5PB 的移动互联网历史数据,而且这些数据正以天天 5TB 的速度快速增加。框架

图片描述

友盟是一家成立于 2010 年 4 月的移动应用分析平台,目前拥有 52 万 App。磊叔按照大数据的“采集 —— 传输 —— 处理 —— 存储 —— 分析 —— 展现”这个流程介绍了友盟移动应用分析平台架构的变迁。运维

图片描述

友盟移动应用分析平台在成立初期采用了 Ruby on Rails 框架,可是随着移动互联网的爆发式增加,很快这个传统的架构就不能知足性能需求了。因而采用了基于 lambda 架构思想的 Realtime+Batch 架构。经过将实时计算和离线批处理计算灵活地结合起来,既能对增量数据进行低延迟的实时计算,也能轻松地对海量的全量数据进行离线处理,来完成多个维度统计指标和统计模型的计算。异步

图片描述

该架构中日志收集部分使用了 finagle 异步非阻塞式 RPC 框架,经过横向扩展可以支撑海量的日志上传请求。在数据传输部分利用 kafka 做为数据总线,kafka 对 storm 和 hadoop 都提供了原生的支持,方便和它们集成使用。实时处理部分经过 Storm 集群来提供服务。离线计算部分则是基于 Hadoop 生态系统,包括 Hadoop , Pig , Hive , Spark 等。经过这些开源大数据生态中的多个组件为友盟的数据平台提供了有力的支撑。oop

图片描述

接下来的重点就是海量数据的存储了。在数据存储层面,友盟数据平台的实时数据采用 MongoDB ,可以提供横向扩展功能和丰富的特性。对于离线数据而言,考虑到数据量特别大,所以采用 HDFS 存储和 HBase 存储两种方式。对于只须要顺序读写的数据,存储在 HDFS 上,已经达到 PB 级规模。对于须要提供随机读写的数据,存储在 HBase 中。性能

图片描述

对于 HBase 的使用,吴磊介绍了友盟多年积累的实践经验。分别就 HBase 在读写方面的优化方法作了深刻剖析。大数据

对于 HBase,吴磊详细的介绍了使用经验。HBase 若是是采用默认参数,那么对于大批量的随机读性能是彻底不够的,须要对随机读进行针对性优化才能有很大的性能提高。例如 HBase 参数调优,在 MR 中经过采起全局排序的方式变随机读为顺序读、数据聚合、RowKey 设计、表预先切分、客户端使用参数调优、大批写使用 Bulk Load 、中间数据和小表使用文件替代等多种具体的优化手段。优化

在 HBase 使用过程当中,为了不踩坑,吴磊提醒你们注意三点:第一,重视运维;第二,及时关注官方动态;第三,在使用一些新特性时须要谨慎对待。spa

关注友盟博客,查看更多数据架构分析文章。

相关文章
相关标签/搜索