基于Lambda架构的移动互联大数据平台架构的设计与应用
2016-05-30苏树鹏
(广西机电职业技术学院,广西 南宁 530007)
【摘 要】随着移动互联、物联网技术的迅猛发展和移动终端的普及,预计到2020年,全球数据量将达到35.2 ZB。那么,从海量数据中处理和提纯有价值的数据的效率将成为一种核心竞争力。文章采用基于Lambda架构的大数据解决方案,该方案在硬件架构层集成了刀片服务器、存储、网络等设备;软件架构层整合当今主流的各类大数据组件,系统平台实现移动互联海量数据采集、挖掘、数据仓库和数据分析等功能,为构建移动互联大数据平台提供解决方案。
【关键词】移动互联;海量数据;Lambda;Map-Reduce;Storm
【中图分类号】TP393.06 【文献标识码】A 【文章编号】1674-0688(2016)06-0066-03
0 引言
伴随着互联网从PC端向移动端的迅速延伸,使移动端成为互联网最重要的入口,而这些移动端的设备每天产生以十亿计的海量信息,这些海量信息已经渗透当今每一个行业和业务智能领域,成为重要的生产因素。传统的处理数据方法是把静止数据库中的数据带进程序进行分析。而移动互联平台时刻产生数据没有办法停止,最佳处理方法是把程序带进活动的数据进行分析,因此基于移动互联平台下如何采集、存储、整理分析和挖掘海量信息,成为亟待解决的问题。本文采用Lambda架构作为系统的通用大数据处理框架,整个系统划分为Batch Layer、Speed Layer和Serving Layer 3层,在这3层中集成Hadoop、Kafka、Storm、Spark、Hbase等各類大数据组件,解决移动互联平台读写分离和复杂性隔离等问题,为构建移动互联平台解决方案提供宝贵经验。
1 Lambda简介
数据是与时间有关的,数据一定是在某个时间点上产生的,因此数据的本身是不可变的。移动互联平台分布式系统中的数据产生于不同的系统中,时间决定了数据发生的全局先后顺序,移动互联平台必须实时存储和处理数据。
Lambda架构是由Nathan Marz提出的一个实时大数据处理框架,其核心思想是既能兼顾低延迟的计算需求,同时也具有处理全量数据的能力,最后通过将2个部分的视图聚合起来提供外部服务。
Lambda架构(如图1所示)是集成Hadoop、Kafka、Storm、Spark、Hbase等各类大数据组件,设计出一个能满足实时大数据系统关键特性的架构,包括高容错、低延时和可扩展等。Lambda架构整合离线计算和实时计算,融合不可变性、读写分离和复杂性隔离等一系列架构原则。
2 移动互联大数据平台架构的设计
移动互联大数据平台(如图2所示)是基于Lambda架构,由数据采集层、数据接入层、数据计算层、数据服务层和数据存储层构成。
数据采集层面临高并发、数据量大和扩展性等亟待解决的问题。本文在数据采集层引用Finagle Server开源异步服务器框架,该服务器框架契合移动互联网访问特点:高并发,小数据量,单台服务器的处理能力得到了极大地提升,同时支持横向扩展收集日志服务。对于移动终端如手机、平板和盒子等设备,数据采集层提供通过APP集成SDK,移动互联平台通过SDK将移动终端设备的日志返回到移动互联平台,移动互联平台在nginx负载均衡下,通过唯一标识、数据标准化和数据格式对数据进行清洗,最后把数据送入基于Finagle框架的日志接收器,最后传入数据接入层。
数据接入层使用2个Kafka集群来承担数据接入功能,最上面Kafka集群被实时计算消费,下面kafka用于离线数据消费,2个集群之间通过Kafka的Mirror功能进行同步。
数据计算层为了实现IO负载分离,通过业务解耦,把计算分为实时计算、离线计算、准实时计算3个部分。时效性是实时计算首先要面对的问题,从实时方面考虑,就不能放一些太复杂的计算,计算结果会存储到MongoDB。离线计算数据倾斜是贯穿离线计算始终的问题,通过改造Hadoop的公平调度算法来保证大任务能得到充分的计算资源在可接受的范围内计算完毕,同时使用Hive建立数据仓库,使用pig进行数据挖掘,离线分析的结果存储在HBase。准实时计算主要处理如下载服务、消息推送中的圈人服务等。最后通过统一的REST Service来对外提供数据服务。
3 移动平台数据存储和增值
本文利用云存储技术构建移动互联系统平台的存储系统,该存储系统不仅是一个并行的硬件,而且是由网络设备、存储设备、服务器、软件、接入网络、用户访问接口及客户端程序等多个部分构成的。为了方便维护,把该存储系统分为存储层、基础管理层、应用接口层及访问层。存储层是云存储系统的基础,由存储设备(满足FC协议、iSCSI协议、NAS协议等)构成。基础管理层是云存储系统的核心,其担负着存储设备间协同工作、数据加密、分发及容灾备份等工作。应用接口层是系统中根据用户需求来开发的部分,根据不同的业务类型,可以开发出不同的应用服务接口。访问层指授权用户通过应用接口登录和享受云服务,其主要优势在于硬件冗余、节能环保、系统升级不会影响存储服务、海量并行扩容、强大的负载均衡功能、统一管理、统一向外提供服务及管理效率高。云存储系统从系统架构、文件结构、高速缓存等方面入手,针对监控应用进行了优化设计。数据传输可采用流方式,底层采用突破传统文件系统限制的流媒体数据结构,大幅提高了系统的性能。
移动互联大数据平台存储系统的数据如何实现增值?数据是从统计到挖掘到大数据的阶段,只有通过这种数据的相互分享,才能够得到数据的红利和反馈。
第一,它们从顾客需要的数据(能够创造商业价值)开始,而不是聚焦在它们已有的数据及这些已有数据能告诉他们什么。主要工作是在幕后找出什么是顾客需要的(通过数据、工具、信息),然后得到答案。
第二,不是把你的见解分享给一小撮商业领袖,而是直接把它融入、应用到商业应用或者工作流程中,让尽量多的人来利用这些大数据的结论。
第三,拥有绝对的数据使用权。在这个基于云的大数据世界,第三方数据的获取、管理、使用都必须是合法的。
本文认为主要通过数据统计及APP的推送,为移动开发者提供支持。“友盟”的“一站式”解决方案整合了应用统计分析、游戏统计分析、社会化组件、微社区、消息推送、友盟指数等产品和服务,并基于数据将产品之间横向打通,以求充分发挥和运用数据的价值:其一,内部数据打通,“友盟”不光是做统计分析,还有即时通信、社会化分享、工具推荐等业务。把这些业务的数据尽可能地进行横向打通,这样一来,就可以利用用户自身的自定义事件,进行一些有针对性的推送。其二,用户画像。“友盟”还与其他的数据方合作,给用户进行画像,这样就可以进行更加精准的推送。用户画像可以根据现有的数据更精准地确定自己用户的属性和兴趣、行为等。其三,设备评级。对于APP开发者来说,了解渠道的推广效果,如哪些渠道的推广价值用户大,哪些渠道推广的用户价值小,哪些渠道有作弊行为,推广的全是一些虚假的用户。其四,APP健康度评估。通过APP健康度估价能使开发者了解自己这一款APP当前是处于生命周期的哪个阶段,是属于快速增长阶段、平稳发展阶段,还是属于衰减阶段。这样就能更好地了解自己的产品目前的健康状况,同时也能了解自身产品,如用户群体中有多少是垃圾设备,有多少是有价值的设备。
4 总结
本文介绍了Lambda架构的基本概念。Lambda架构通过对数据和查询的本质认识,融合了不可变性、读写分离和复杂性隔离等一系列架构原则,将大数据处理系统划分为Batch Layer、Speed Layer和Serving Layer 3层,从而设计出一个能满足实时大数据系统关键特性(如高容错、低延时和可扩展等)的架构。Lambda架構作为一个通用的大数据处理框架,可以很方便地集成Hadoop、Kafka、Storm、Spark、Hbase等各类大数据组件。
参 考 文 献
[1] 孙广中,肖锋,熊曦.MapReduce模型的调度及容错机制研究[J].微电子学与计算机,2007,24(9).
[2] 刘鹏.实战Hadoop——开启通向云计算的捷径[M].北京:电子工业出版社,2013.
[3] (美)CHUCK LAM.Hadoop in Action[M].北京:人民邮电出版社,2011.
[责任编辑:陈泽琦]
【基金项目】广西机电职业技术学院2015年度院级科研立项项目“基于移动互联网的校园服务平台构建与应用”(编号:2015KYLX016);2014年度广西高等学校立项科研项目“数字化校园中大数据的存储管理研究与应用”(编号LX2014559)。
【作者简介】苏树鹏,男,广西南宁人,硕士,广西机电职业技术学院讲师、工程师,研究方向:软件设计、云计算、计算机教育。