一种海量移动终端在线量统计方法和装置与流程

文档序号:13164363阅读:240来源:国知局
一种海量移动终端在线量统计方法和装置与流程

本发明实施方式涉及通信技术领域,尤其涉及一种海量移动终端在线量统计方法和装置。



背景技术:

随着移动互联网的发展以及智能手机和手上电脑等移动终端设备的普及,使得移动终端的数量骤增。各大硬件厂商所生产的移动终端硬件产品的市场使用率的统计信息,对于这些硬件厂商检测产品市场调查显得越来越重要,因此有必要对移动终端的在线量进行统计。

目前,移动终端的在线量统计通常采用:通过检测技术进行移动终端数量的累加;结构化查询语言(structuredquerylanguage,sql)语句查询;多线程处理等方法。

在实施本发明的过程中,发明人发现现有技术至少存在如下问题:

移动终端心跳日志信息存储在特定存储服务器,并且数据量越来越大,若直接导入到hadoop分布式文件系统(hdfs)中在进行mapreduce(一种编程模型,用于大规模数据集的并行运算)计算,当数据量特别大时,每天上传数据所消耗的时间是不可接受的。就算使用多线程和进程处理,对服务器处理的性能要求也需要特别高,而且计算时间也是比较长的。

应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。



技术实现要素:

针对上述问题,本发明实施方式的目的在于提供一种海量移动终端在线量统计方法和装置,能够提高移动终端在线量统计的效率。

为实现上述目的,本发明实施方式提供一种海量移动终端在线量统计方法,包括:将存储服务器分别挂载到hadoop分布式文件系统的主节点和从节点;通过对hadoop分布式文件系统的接口进行设置,将存储在主节点和从节点的本地文件的路径保存在hadoop分布式文件系统的计算平台的成员变量中,使得计算平台能够访问所述本地文件;采用计算平台的并行化计算对hadoop分布式文件系统接收到的移动终端的心跳日志信息进行处理,进行移动终端在线量统计。

进一步地,所述将存储服务器分别挂载到hadoop分布式文件系统的主节点和从节点包括:将存储服务器中本地文件所在磁盘分别挂载到hadoop分布式文件系统的主节点和从节点,且挂载路径相同。

进一步地,所述对hadoop分布式文件系统的接口进行设置,将存储在主节点和从节点的本地文件的路径保存在hadoop分布式文件系统的计算平台的成员变量中,使得计算平台能够访问所述本地文件,包括:在hadoop分布式文件系统的计算平台mapreduce的映射类中重写接口,将存储在主节点和从节点的本地文件的路径保存在所述映射类的成员变量中,供映射类的成员函数使用,使得mapreduce能够访问所述本地文件。

进一步地,所述对hadoop分布式文件系统接收到的移动终端的心跳日志信息进行处理包括映射阶段、合并阶段和归纳阶段,其中,对hadoop分布式文件系统的接口进行设置,将移动终端的心跳日志信息的输入路径和输出路径设置为本地目录;在映射阶段提取hadoop分布式文件系统接收到的移动终端的心跳日志信息中的终端设备id,输出为(终端设备id:1);在合并阶段根据终端设备id对映射阶段的输出进行合并,输出为(终端设备id:(1,1,1));在归纳阶段对合并阶段的输出进行去重和频率统计。

进一步地,所述方法还包括:根据预先设置的统计周期,进行移动终端在线量统计,其中统计周期设定为日、周、月或年。

为实现上述目的,本发明实施方式还提供一种海量移动终端在线量统计装置,包括:第一处理模块,用于将存储服务器分别挂载到hadoop分布式文件系统的主节点和从节点;第二处理模块,用于对hadoop分布式文件系统的接口进行设置,将存储在主节点和从节点的本地文件的路径保存在hadoop分布式文件系统的计算平台的成员变量中,使得计算平台能够访问所述本地文件;第三处理模块,用于采用计算平台的并行化计算对hadoop分布式文件系统接收到的移动终端的心跳日志信息进行处理,进行移动终端在线量统计。

由上可见,本发明实施方式提供的一种海量移动终端在线量统计方法和装置,通过将存储服务器分别挂载到主节点和从节点,并对接口进行设置,将存储在主节点和从节点的本地文件的路径保存在mapreduce的成员变量中,使得mapreduce能够访问所述本地文件,从而采用mapreduce的并行化计算对移动终端的心跳日志信息进行处理,进行移动终端在线量统计。主要体现在节省整体数据处理时间上,由于不需要将数据上传到hdfs中,因此节省了数据的上传所需要花费的时间,而且通过简单的存储资源挂载和文件目录管理就可以进行mapreduce并行化计算,从而提高了移动终端在线量统计的效率。

附图说明

为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图逐一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施方式提供的海量移动终端在线量统计方法的流程示意图;

图2为本发明实施方式提供的海量移动终端在线量统计装置的功能模块图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

hadoop分布式文件系统(hadoopdistributedfilesystem),简称hdfs。hdfs有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。此外,hdfs可以以流的形式访问(streamingaccess)文件系统中的数据。

hadoop的框架核心的设计包括hdfs和mapreduce,其中hdfs为海量的数据提供了存储,mapreduce为海量的数据提供了计算,其中map为映射,reduce为归纳。因此,本发明利用mapreduce并行化计算模式,设置直接对本地文件进行读写,从而提高了移动终端的在线量统计效率。

本发明实施方式提供一种海量移动终端在线量统计方法。请参阅图1,所述方法可以包括以下步骤:

步骤s1:将存储服务器分别挂载到hadoop分布式文件系统的主节点和从节点。

在本实施例中,hadoop分布式文件系统hdfs中包括主(master)节点和从(slave)节点。将存储服务器中本地文件所在磁盘分别挂载到hadoop分布式文件系统的主节点和从节点,且挂载路径相同。

在每个节点上进行数据备份,具体地,例如有3个文件a,b,c,分别存储在hdfs的三个从节点上。预先设置hdfs中参数k=1,即1备1,则第一个节点上数据有a和b,第二节点上数据有b和c,第三个节点上有c和a,一旦有一个从节点坏掉了,假如是第一个节点坏掉了,hadoop会根据文件目录和第一个节点上的数据情况,将第三个节点上的a拷贝到第二节点上,将第二个节点上的b拷贝到第三节点上。因此,每个从节点都有全量数据,也就是1备n-1。

步骤s2:对hadoop分布式文件系统的接口进行设置,将存储在主节点和从节点的本地文件的路径保存在hadoop分布式文件系统的计算平台的成员变量中,使得计算平台能够访问所述本地文件。

java程序中,对于数据的输入/输出操作都是以“流”的方式进行,设备可以是文件、网络、内存等。流具有方向性,例如如果数据的流向是程序至设备为outputstream(输出流),反之则称为inputstream(输入流)。流把i/o设备内部的具体操作给隐藏起来了。所有inputstream和reader的派生类都有一个基本的,继承下来的,能读取单个或byte数组的read()方法。

在本实施例中,对javaioapi(applicationprogramminginterface,应用程序编程接口)进行设置,使得mapreduce计算平台可以访问本地文件。

例如,mapreduce的映射(mapper)类是一个转换输入记录到某个中间记录的独立任务,被转换后的中间记录不需要与输入记录具有相同的类型。一个给定的输入键值对可能会map到零个或多个输出键值对。

在mapper类中重写configure接口(或者setup),将本地文件的路径保存在mapper类的成员变量中,供mapper类成员函数使用,具体程序可以如下:

localfiles=distributedcache.getlocalchefiles(job)

其中,getlocalcachefiles返回的是数组(元素类型是path),该数组的内容是task(map或者reduce)所属的job设定的所有需要被分发的文件。

步骤s3:采用计算平台的并行化计算对hadoop分布式文件系统接收到的移动终端的心跳日志信息进行处理,进行移动终端在线量统计。

在本实施例中,利用javaioapi将文件的输入路径和输出路径设置为本地目录,其中,输入路径为心跳日志信息所在的本地路径,输出路径可根据情况在本地目录下具体设定。利用mapreduce并行化快速计算出海量数据收集器的在线量和向服务器抛送的上行文件个数。

具体地,启动映射map阶段提取心跳日志信息中的终端设备id,map阶段输入为每一行的终端设备心跳信息,输出为(终端设备id:1)。

合并combiner阶段将map阶段的输出进行合并,输出为(终端设备id:(1,1,1))。

归纳reduce阶段将combiner阶段的输出作为输入,然后进行去重和频率统计。

通过上述步骤即可实现移动终端用户的日/周/月/年在线量统计和进一步提高效率。

请参阅图2。本发明实施方式还提供一种海量移动终端在线量统计装置,包括:

第一处理模块,用于将存储服务器分别挂载到hadoop分布式文件系统的主节点和从节点;

第二处理模块,用于对hadoop分布式文件系统的接口进行设置,将存储在主节点和从节点的本地文件的路径保存在hadoop分布式文件系统的计算平台的成员变量中,使得计算平台能够访问所述本地文件;

第三处理模块,用于采用计算平台的并行化计算对hadoop分布式文件系统接收到的移动终端的心跳日志信息进行处理,进行移动终端在线量统计。

其中,

所述第一处理模块,具体用于:将存储服务器中本地文件所在磁盘分别挂载到hadoop分布式文件系统的主节点和从节点,且挂载路径相同。

所述第二处理模块,具体用于:在hadoop分布式文件系统的计算平台mapreduce的映射类中重写接口,将存储在主节点和从节点的本地文件的路径保存在映射类的成员变量中,供映射类成员函数使用,使得mapreduce能够访问所述本地文件。

所述第三处理模块,具体用于:对hadoop分布式文件系统的接口进行设置,将移动终端的心跳日志信息的输入路径和输出路径设置为本地目录;在映射阶段提取hadoop分布式文件系统接收到的移动终端的心跳日志信息中的终端设备id,输出为(终端设备id:1);在合并阶段根据终端设备id对映射阶段的输出进行合并,输出为(终端设备id:(1,1,1));在归纳阶段对合并阶段的输出进行去重和频率统计;根据预先设置的统计周期,进行移动终端在线量统计,其中统计周期设定为日、周、月或年。

上述的涉及到的海量移动终端在线量统计装置的具体技术细节和海量移动终端在线量统计方法中的类似,故不再具体赘述。

由上可见,本发明实施方式提供的一种海量移动终端在线量统计方法和装置,通过将存储服务器分别挂载到主节点和从节点,并对接口进行设置,将存储在主节点和从节点的本地文件的路径保存在mapreduce的成员变量中,使得mapreduce能够访问所述本地文件,从而采用mapreduce的并行化计算对移动终端的心跳日志信息进行处理,进行移动终端在线量统计。主要体现在节省整体数据处理时间上,由于不需要将数据上传到hdfs中,因此节省了数据的上传所需要花费的时间,而且通过简单的存储资源挂载和文件目录管理就可以进行mapreduce并行化计算,从而提高了移动终端在线量统计的效率。

本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。

最后应说明的是:上面对本发明的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本发明的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本发明旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1