魅族大数据的流平台系统拥有自设计的采集SDK,自设计支持多种数据源采集的Agent组件,还结合了Flume、Spark、Metaq、Storm、Kafka、Hadoop等技术组件,本文就魅族流平台对大量数据的采集、实时计算、系统分析方法,全球多机房数据采集等问题进行介绍。
一、魅族大数据平台架构
如图所示便是魅族的大数据平台架构。
- 左上角是数据开发平台,比如webIDE可以使得开发人员更便捷地做一些数据查询和管理;
- 最右边的是一个数据产品门户,包括我们的用户画像、统计系统等,这里面包含大数据的很多组件,比如数据采集、数据处理、数据存储、数据挖掘等,最后产生大数据的雏形。
二、流平台介绍
流平台是大数据平台一个比较重要的部分,主要包括四个部分:数据采集、数据处理、数据存储、计算能力。
“谁拥有了整个世界的数据,他就是最大的赢家”,这句话虽然有点夸张,但是却表达了数据采集的重要性。一个大数据平台数据的多样性、数据量的级别很大程度上决定了大数据的能力和丰富程度。
这里讲的数据处理并不是像末端那么专业的数据清洗,更多的是为后续入库做一些简单处理,以及实时计算。
计算能力,包括离线计算和实时计算
流平台为大数据提供非常强大的支撑,数据统计分析、数据挖掘、神经网络的图形计算等都可以依靠计算能力进行。
实时计算是指在一定单位的时间延迟范围内,基于增量的数据推算出结果,再结合历史数据得到期望的分析结果。这个时间是根据业务需求而定。
1、流平台架构
上图是我们的流平台架构图
- 最右边是集群,下面还有其他的一些Hadoop(存储);
- 最上面的是AS-Manager(我们的流管理平台),承载了非常多的管理功能;
- 下面是Zookeeper,这是一个非常流行的集成管理中心,魅族的一些架构都会用到它,流平台也不例外,Zookeeper可以说贯穿了我们整个流平台的架构;
- 最下面是AS-Protocol,我们自己设计的流平台的数据对象协议,打通了整个流平台的数据链路;
- 中间四个框是核心的四个模块:采集模块、数据中转模块、缓存模块、实时计算模块,也叫合并层。
2、具体架构介绍
这是我们的具体架构图。
业务规模:从这边采集数据到经过流平台最后经过实时计算或入库,它的数据量量级在千亿级别。
3、组件
前面提到采集数据源渠道的多样性决定了大数据平台的相应能力和综合程度。我们这边首先会有一个文件类的业务数据,包括业务日志、业务数据、数据库文件,这些都会经过采集服务采集。
下面这一块包括一些网站的js访问、手机各APP埋点、特点的应用日志文件(它会通过手机端的一些埋点上访到我们的埋点服务)。
数据采集分为两个部分:采集服务、独立部署的埋点服务。图中只显示了一个埋点服务,里面还会有很多的第三方业务,第三方业务通过这个红色的插件接入我们的采集。
通过采集模块把数据流转到中转模块,中转模块采用的是目前比较流行的flume组件,红色sink是我们自己开发的。
sink把前面的数据转给缓存层,缓存层里有metaq和Kafka。
实时计算模块上线了Spark和Storm,较早上线的是Spark,目前两个都在用的原因是它会适应不同的业务场景。
最后面是我们提供给落地的store层,像HIVE、Hbase等等。
最下面是流管理平台,图中有四条线连着四个核心模块,对这四个模块进行非常重要且非常丰富的逻辑管理,包括数据管理、对各节点的监控、治理、实时命令的下发等。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。