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

[摘要]文章从分布式计算技术角度出发,分析了移动互联网上网行为涉及到的计算技术,并针对移动互联网用户的上网行为具体分析,给出了移动互联网上网详单的查询实现。

[关键词]云计算 分布式计算 移动互联网

1 前言

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

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

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

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

2.1分布式文件系统

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

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

2.2分布式计算

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

图1说明了用MapReduce来处理大数据集的过程,这个MapReduce的计算过程简而言之,就是将大数据集分解为成百上千的小数据集,每个(或若干个)数据集分别由集群中的一个结点(一般就是一台普通的计算机)进行处理并生成中间结果,然后这些中间结果又由大量的结点进行合并,形成最终结果。

计算模型的核心是Map和Reduce两个函数,这两个函数由用户负责实现,功能是按一定的映射规则将输入的对转换成另一个或一批对输出,如表1所示。

以一个计算文本文件中每个单词出现的次数的程序为例,1,v3>可以是<行在文件中的偏移位置,文件中的一行>,经Map函数映射之后,形成一批中间结果<单词,出现次数>,而Reduce函数则可以对中间结果进行处理,将相同单词的出现次数进行累加,得到每个单词的总的出现次数。

基于MapRed uce计算模型编写分布式并行程序非常简单,程序员的主要编码工作就是实现Map和Reduce函数,其它的并行编程中的种种复杂问题,如分布式存储、工作调度、负载平衡、容错处理、网络通信等,均由MapReduce框架负责处理,程序员完全不用操心。

2.3分布式数据库

传统数据库已经逐渐被企业应用,在应用的过程当中遇到了很多问题;而分布式数据库具备的高可用、高扩展等特点,则解决了传统数据库无法解决的问题。分布式数据库这种高可用、高扩展特性将会形成一种技术趋势。

传统数据库,比如关系型数据库在解决问题的时遇到了瓶颈,大量访问用户在访问量方面遇到了新的挑

战;真正未来的数据库是一个分布式解决方案,它类似于NoSqI解决方案。分布式数据库解决方案具备两个特点:第一,具有弹性可扩展性;第二,单点不可靠、但整个集群是可靠。分布式数据库是未来数据库或者互联网应用比较青睐的数据库。

这种分布式数据库正在形成一种趋势。分布式数据库和传统的关系型数据库有一定的区别,两者基于不同的理论。第一,传统的数据库有非常强的事务能力,因其一致性高,导致它的扩展性非常复杂;第二,对于互联网企业来讲,其更多关注的不是一致性,其只需要在最终达到数据一致就可以了。这样,在传统数据库解决不了企业应用的问题时,就会出现分布式数据库解决方案。分布式的数据库解决方案并不代表传统数据库的终结,分布式数据库有自己的应用领域,但传统的数据库也仍有自身的用武之地。未来,分布式数据库和传统的关系型数据库应该是互相弥补、互相结合的。

3 分布式数据库在上网记录查询方面的优势分析

分布式数据库系统是在集中式数据库系统的基础上发展来的,分布式数据库系统设计时基于硬件错误是常态,而不是基于异常、简单的一致性模型、大规模数据集、异构软硬件平台间的可移植性、移动计算比移动数据更划算等设计理念,因此分布式数据库从诞生之日起,就非常适合查询类应用。比较分布式数据库系统与集中式数据库系统,可以发现分布是数据库系统具有下列优点:

(1)更适合分布式的管理与控制。分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。

(2)具有灵活的体系结构。集中式数据库系统强调的是集中式控制,物理数据库是存放在一个场地上的,由一个DBMS集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS来共享集中数据库中的数据。而分布式数据库系统的场地局部DBMS的自治性,使得大部分的局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMs可以设计成具有不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。

(3)系统经济,可靠性高,可用性好。与一个大型计算机支持一个大型的集中数据库再加一些进程和远程终端相比。由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。

{4)在一定条件下响应速度加快。如果存取的数据在本地数据库中,那么就可以由用户所在的计算机来执行,速度就快。

(5)可扩展性好,易于集成现有系统,也易于扩充。

4 系统整体架构

整个系统的架构分为三个层次,即由底层的分布式文件系统、Map/Reduce计算模型和上层的分布式数据库构成。其中底层的分布式文件系统和Map/Reduce计算模型采用开源的Hadoop来实现,上层的分布式数据库是Hadoop的开源子项目HBase,最后由ZooKeeper来实现分布式协同服务。整个系统的调度关系如图2所示。

按照整个系统的需求,将系统划分为三个子系统:数据采集子系统、分布式数据库平台和数据的分析和挖掘系统,如图3所示。

数据采集子系统对信令分析系统产生的用户上网详单数据进行实时解析,然后调用分布式数据框架hadoop的接口将数据导入到分布式数据库中;分布式数据库平台建立在分布式文件系统HDFS之上,由HDFS负责文件的复制、校验、备份等操作,分布式数据主要负责提供数据封装接口,根据数据特点建立数据模型,实现key-vaIue的数据库查询;数据的分析和挖掘子系统调用底层的分布式数据库HBase接口,实现数据查询、分析、展现等功能,同时给其他系统提供基本的功能接口。

整个系统的功能结构描述如图4所示。

5 结论

本文以上网记录查询系统为例,重点叙述了分布式数据库中涉及的关键技术和以分布式为基础的用户上网记录查询系统的体系架构。基于软件低成本的分布式存储和分布式数据库,已经成为未来云存储发展的一种趋势,从技术本身的发展来说,随着分布式数据库的不断发展,将在更多的领域得到广泛应用。这种基于软件的云存储凭借着低成本、易管理等优势,和现有的各类数据应用相结合,实现快速落地,服务于企业。服务于用户。我们有充分的理由相信,这种以分布式文件系统和分布式数据库为代表的云存储将得到更多企业的青睐。

推荐访问:互联网 技术研究 上网 记录 计算