一种基于Hadoop的FLASH P2P流媒体实时监测方法
【技术领域】
[0001]本发明涉及一种实时监测方法,具体涉及一种基于Hadoop的FLASH P2P流媒体实时监测方法。
【背景技术】
[0002]FLASH P2P技术是现在视频网站用的比较成熟的技术。Flash P2P视频点播系统则使用Flash P2p技术,提供了一种全新分发点播视频的方式,在保证观众良好观看体验的同时降低了服务器负担和带宽使用,显著提高视频服务器的并发量和降低服务器和带宽成本。目前国内多家视频门户网站采用了 Flash P2P技术,例如优酷、爱奇艺、搜狐等。
[0003]Hadoop是基于分布式技术、并行处理技术和网格计算技术发展的产物,是为了适应用海量数据和大规模计算等新需求而发展出来的模型架构。Hadoop也是一个分布式存储和分布式计算的框架,可以高效的存储海量数据,而且可以运行、编写分布式应用程序处理海量数据。一方面Hadoop在编写和运行大型分布式程序计算方面具有很大优势,主要是Hadoop具有的方便和简捷的特性。另一方面,Hadoop具有极高的拓展性,使得Hadoop在研宄和应用领域得到了广泛的应用,且广受欢迎。
[0004]Hadoop数据中心由连接在一起的千上万的计算机构成,用户通过普通电脑接入就可以使用数据中心,根据自己的需求进行存储。HDFS作为Hadoop的分布式文件系统,具有高度的稳定性和存储效率;提供了高效的数据存储,为用户提供快速、稳定的数据存储服务。Map (化简)Reduce (映射)是Hadoop的核心计算数据模型,用户在使用Map (化简)Reduce (映射)模型进行大规模数据处理时,可以将主要精力放在如何编写Map (化简)和Reduce(映射)函数上,其它并行计算中的复杂问题诸如分布式文件系统、工作调度、容错、机器间通信等都交给Map (化简)Reduce (映射)系统处理,极大程度上降低了整个编程的难度。
【发明内容】
[0005]为了实现上述目的,本发明提出一种基于hadoop的FLASH P2P流媒体实时监测技术,提高了视频的数据处理能力,更好的分析用户行为,优化了网站内容,解决了数据量庞大而无法及时处理的问题,同时更具极高的时效性,商用性。
[0006]本发明的目的是采用下述技术方案实现的:
[0007]一种基于Hadoop的FLASH P2P流媒体实时监测方法,所述方法包括:
[0008](I)客户端启动作业,通过任务调度器获取该作业,并将其放入作业队列中;
[0009](2)通过所述客户端开启嗅探器,获取数据包,将所述数据包发送给HDFS ;
[0010](3)从所述HDFS获取输入划分信息,创建映射任务,并将每个映射任务分配给任务跟踪器;
[0011](4)所述任务跟踪器收到映射任务后,从HDFS获取映射化简程序Map (化简)Reduce (映射),同时对该任务执行映射和化简。
[0012]优选的,所述步骤(I)中,所述作业用于将FLASH P2P流量从网络流量中分离;
[0013]优选的,所述步骤(2)中,每隔0.1s将获取的数据包发送给HDFS ;其中,所述数据包包括 TCP、UDP、HTTP 和 DNS。
[0014]优选的,所述步骤(4)中执行映射的方法包括:在执行映射前,确认映射任务的输入/输出的路径,并输入目录下的数据文件;获取第一〈键,值〉、中间〈键,值 > 和第二〈键,值〉,先根据第一〈键,值〉进行映射计算,对其输出结果进行第二次映射计算,得到映射输出结果进行化简输出,并将数据输出到设定的目录下。
[0015]进一步地,第一次映射计算,包括通过映射函数根据数据包类型筛选UDP数据包,生成所述中间〈键,值 >,并删除UDP数据包外的其他数据包,其中键值为该UDP数据包类型,value值为UDP数据包。
[0016]进一步地,第二次映射计算,包括将所述中间〈键,值〉中的值重新作为数据,进行第二次映射计算,定义第二〈键,值〉;其中键值为数据包的访问端ID,如果所述访问端ID能够被4整除,则该数据包为FLASH P2P流量数据包。
[0017]进一步地,所述化简输出包括:将第二次映射的输出结果放入一个环形缓冲区,当该缓冲区快要溢出时,在本地文件系统中创建一个溢出文件,将该缓冲区中的数据写入该文件;当缓冲区中的数据到达一定大小时,开始写入硬盘;
[0018]写入前,将数据划分为与化简任务数目相同的分区;写入时,化简任务向任务调度器获取对应的映射输出位置和数据。
[0019]进一步地,所述任务跟踪器周期性的向任务调度器发送心跳包,告知任务调度器运行新的作业,此时任务调度器调动映射从HDFS获取新的数据块,无需重新获取其他信息;所述心跳携带的信息为当前映射任务完成的进度信息;当任务调度器收到作业的最后一个任务完成信息时,把该作业设置为“成功”。
[0020]与最接近的现有技术比,本发明的优异效果为:
[0021]1、改变了传统的计算模式,缩短了计算时间,通过该系统能够更加有效的监测到用户交互的实时数据。
[0022]2、通过该技术能够快速分析视频产生的庞大的数据量,迅速分离flash p2p流量。
[0023]3、可以在分离出的flash p2p流量中可以获取用户的潜藏的信息,进行商用,为客户创造更大的利益。
【附图说明】
[0024]图1为本发明提供的基于Hadoop的FLASH P2P2流媒体实时监测方法流程图
[0025]图2为本发明提供的基于Hadoop的FLASH P2P2流媒体实时监测框图
[0026]图3为本发明提供的基于Hadoop的FLASH P2P2流媒体实时监测时序图
【具体实施方式】
[0027]下面结合附图对本发明作进一步详细说明:
[0028]如图1所示,一种基于Hadoop的FLASH P2P流媒体实时监测方法,所述方法包括:
[0029]结合图2、图3所示,(I)客户端启动作业,通过Job tracker (任务调度器)获取该作业,并将其放入作业队列中;所述步骤(I)中,所述作业用于将FLASH P2P流量从网络流量中分离;
[0030](2)通过所述客户端开启嗅探器,获取数据包,将所述数据包发送给HDFS ;所述步骤(2)中,每隔0.1s将获取的数据包发送给HDFS ;其中,所述数据包包括TCP、UDP、HTTP和DNS0
[0031](3)从所述HDFS获取输入划分信息,创建Map (化简)任务,并将每个Map (化简)任务分配给Task tra