您所在的位置:e-works首页 > 基础信息化 >

移动互联网上网行为记录应用云计算技术研究

发表时间:2012/3/18 王作民 陈清金 来源:万方数据
文章从分布式计算技术角度出发,分析了移动互联网上网行为涉及到的计算技术,并针对移动互联网用户的上网行为具体分析,给出了移动互联网上网详单的查询实现。

1前言

    随着智能移动终端的普及与应用,移动互联网应用市场已经成为一个日益繁荣的生态系统,采用云计算技术实现移动互联网应用成为主流,即通过移动网络以按需、易扩展的方式,获得所需基础设施、平台、软件(或应用)等的一种IT资源或(信息)服务的交付与使用模式。2009年中国各大运营商获得3G牌照,标志着移动互联网在中国的发展进入了快车道。我国投入了万亿规模的3G网络若要成功,也必须依赖于类同苹果AppStore这样的移动云计算的成功。利用移动云计算的各种移动互联网服务正逐渐深入到人们的生活中,而人们对移动互联网各类服务的大量使用又将反过来进一步推动“移动云计算”市场与技术的发展。

    移动终端已经由原来单一的通话功能向语音、数据、图像综合方向演变,手机正给人们带来越来越丰富的应用。进入3G时代以后,移动通信网络的数据传输速度显著提高,是GSM的200倍、GPRS的13倍之多。结合通信网络如此革命化的技术突破,智能手机和高速的 移动互联网接入的结合,正不断改变着人们的生活,从而可随时随地享受互联网带来的快乐。来自中国互联网信息中心的数据,截至2010年底,中国有3.03亿用户使用手机上网,较去年增加了2.3亿,手机上网用户如此高速的增长,给运营商带来了丰厚回报,同时也伴随着一些严重的问题:用户手机流量的突破性增长给运营商的运营支撑系统带来了严峻的挑战,用户的手机上网产生了大量的上网日志,根据某运营商某省公司数据显示,每天用来记录用户上网行为的数据达到了1T;而随着用户消费意识的不断增强,用户对自己上网的流量也越来越关心,他们关心自己流量的使用情况、所使用的流量明细,就像对语音和短信一样,需要明明白白的消费,面对这些海量数据查询,传统的数据库已经很难支撑现有的应用。本文将以用户上网记录查询系统为例来讲述分布式文件系统和分布式数据库在运营商BSS中的应用。

2分布式上网记录查询系统的关键技术

    所谓分布式,在这里,很狭义的指代以Google的三驾马车GFS,Map/Reduce,BigTable为框架核心的分布式存储和计算系统。Hadoop是一个基于Java实现的、开源的、分布式存储和计算的项目。作为这个领域最富盛名的开源项目之一,它的使用者也是大牌如云,包括Yahoo,Amazon,Facebook等。Hadoop本身,实现的是分布式的文件系统HDFS,和分布式的计算(Map/Reduce)框架。此外,Hadoop包含一系列扩展项目,包括了分布式文件数据库HBase(所对应Google的BigTable)、分布式协同服务ZooKeeper(对应Google的Chubby),等等。

    2.1分布式文件系统

    分布式文件系统,在整个分布式系统体系中处于最低层最基础的地位。顾名思义,分布式文件系统就是分布式+文件系统。它包含这两个方面的内涵,从文件系统客户使用的角度来看,它就是一个标准的文件系统,提供了一系列API,由此进行文件或目录的创建、移动、删除以及对文件的读写等操作。从内部实现来看,分布式的系统则不再和普通文件系统一样复杂管理本地磁盘,它的文件内容和目录结构都不是存储在本地磁盘上,而是通过网络传输到远端系统上。并且,同一个文件存储不只是在一台机器上,而是在一簇机器上分布式存储,协同提供服务,正所谓分布式。

    因此,考量一个分布式文件系统的实现,其实不妨可以从这两方面来分别剖析,而后合二为一。首先,看它如何去实现文件系统所需的基本增、删、改、查的功能;然后,看它如何考虑分布式系统的特点,提供更好的容错性、负载平衡等。这二者合二为一,就明白了一个分布式文件系统整体的实现模式。

    2.2分布式计算

    分布式计算,同样是一个宽泛的概念,在这里,它狭义的指代按GoogleMap/Reduce框架所设计的分布式框架。分布式文件系统,很大程度上,是为各种分布式计算需求所服务的。其实分布式文件系统就是加了分布式的文件系统,类似的定义推广到分布式计算上,我们可以将其视为增加了分布式支持的计算函数。Map/Reduce框架接受各种格式的键值对文件作为输入/读取计算后,最终生成自定义格式的输出文件。而从分布式的角度上看,分布式计算的输入文件往往规模巨大,且分布在多个机器上,单机计算完全不可支撑且效率低下,因此Map/Reduce框架需要提供一套机制,将此计算扩展到无限规模的机器集群上进行。MapReduce将复杂运行于大规模集群上的并行计算过程,高度地抽象到了两个函数:Map和Reduce,这是一个令人惊讶的简单却又威力巨大的模型。适合用MapReduce来处理的数据集(或任务)有一个基本要求:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

    MapReduce计算流程

    图1 MapReduce计算流程

 

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:赵蔓