云环境下分布式网络信息采集方法

文档序号:8381017阅读:473来源:国知局
云环境下分布式网络信息采集方法
【技术领域】
[0001] 本发明属于云计算与大数据领域,涉及在云环境下分布式网络爬虫系统的模型的 设计。
【背景技术】
[0002] 互联网最基础的功能即提供信息,目前,互联网上的信息已是海量,搜索引擎则是 网民在汪洋中搜寻信息的工具,是互联网上不可或缺的工具和基础应用之一。根据《CNNIC: 2014年第33次中国互联网络发展状况统计报告》显示[1],截止2013年12月,我国搜索 引擎用户规模达到4. 90亿,与2012年底相比增长3856万人,增长率为8. 5 %,使用率为 79.3%。位列网络应用中即时通信、网络新闻之后的第三位。在美国,搜索引擎使用率已经 达到了 91%,在中国这样一个网民快速增长和以年轻网民主导的国家,搜索引擎用户会继 续增长,对于拥有核心技术和海量用户的搜索引擎行业,发展前景令人看好。
[0003] 云计算的概念由IBM、Google等IT服务企业提出后一直在不断推进与深入,云计 算的基本特征是资源共享、按需分配、弹性调度和服务可扩展,云计算所提供的强大计算能 力和存储能力能够支撑爬虫系统功能的实现。Hadoop是一个由Apache基金会所开发的分 布式系统基础架构,它实现了一个分布式文件系统,简称HDFS,为海量的数据提供了存储。 它还提供了一种基于M/R计算模型的开发框架,通过实现这种框架,可以快速地开发出高 效、可靠的分布式计算程序。
[0004] 传统的分布式网络爬虫系统从功能实现的方式上可以分为无中心调度节点的独 立式架构、拥有一个调度中心的动态分配架构以及将整个网络分成不同的部分分别爬行的 静态分配架构。无中心调度节点的独立式架构中各个节点之间缺乏交流,造成重复爬行大 量的冗余页面。静态分配架构中,URL的分配方式是按照爬行页面的地域特征,指定爬行服 务器爬行的IP范围,没有考虑到不同地域上页面的数量,造成不同的爬行服务器上任务分 配不均。拥有一个调度中心的动态分配架构可以使URL平均地分配到页面抓取服务器上, 但是没有考虑到不同服务器上性能的差别。
[0005] 面对海量的互联网信息,分布式网络爬虫需要做到快速、全面地对网络信息进行 抓取,同时尽可能地达到负载均衡,降低页面重复率。本文提出一种云环境下的分布式网络 爬虫系统的设计模型。

【发明内容】

[0006] 技术问题:本发明针对传统网络爬虫面对互联网海量页面时,页面抓取速度慢、分 布式集群负载不均衡的问题,采用页面抓取与页面处理相分离的系统设计方法,提高页面 采集的速度,通过对页面采集服务器页面采集时间的横向和纵向的比较,动态地为页面采 集服务器分配抓取任务,尽可能地使页面采集服务器达到负载均衡的状态。
[0007] 技术方案:本发明的云环境下分布式网络信息采集方法,含如下步骤:
[0008] 1)系统模型的组成:页面信息采集子系统、页面信息数据处理子系统;
[0009] 2)页面信息采集系统创建服务监听端口,接收中心节点分配的URL集合,当接收 到中心节点分配的URL集合后,触发步骤3 ;
[0010] 3)页面信息采集系统采用异步的方式,对URL集合中的每个页面进行抓取,抓取 完成后,将包含所有页面信息的结果返回给中心节点;
[0011] 4)中心节点将接收到的抓取的结果放到待处理页面集合中,交由云计算平台对页 面信息进行处理,并且将页面服务器加入空闲的服务器列表;
[0012] 5)云计算平台提取出页面中所有的超链接,并且对超链接进行过滤,将过滤出来 的URL放入到待分配的URL集合中;
[0013] 6)中心节点根据未分配的服务器列表,根据URL分配的策略,将待分配的URL分配 给各个页面信息采集服务器,重复步骤2,直到待分配URL列表为空;
[0014] 本发明提出了云环境下分布式网络信息采集方法,通过采用本发明提出的方法, 可以在面对互联网海量的数据时,以最快的速度、最小的页面重复率抓取网页信息,并且保 证集群主机的负载均衡。
【附图说明】
[0015] 图1基于本发明的页面信息抓取流程图。
[0016] 图2是本发明的分布式网络爬虫架构图。
[0017] 图3是本发明的页面米集系统流程图。
[0018] 图4是本发明的URL分配流程图。
【具体实施方式】
[0019] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0020] 图1是本发明的网络爬虫系统运行流程图。本发明主要涉及到分布式页面信息抓 取模块以及URL分配算法。本发明考虑的是云计算环境中,分布式网络爬虫系统设计的解 决方案,本发明中云环境以Hadoop系统框架为基础,采用HBase作为页面元数据的数据存 储平台,页面数据的处理采用M/R的计算框架。整个网络爬虫系统架构如图2所示,系统包 含页面抓取节点、中心调度节点、存储节点三种节点,其中,抓取节点主要负责页面信息的 快速抓取,中心调度节点负责URL集合的分配、页面解析任务的分配、抓取节点的管理等功 能,存储节点负责保存解析好的网页信息元数据。页面抓取系统运行在云环境之外的普通 电脑之中,通过异步请求的方式抓取页面信息,采用JSON格式的数据,与中心调度节点进 行数据的交互。
[0021] 下面给出本发明的具体实施案例:
[0022] (1)页面抓取系统采用NodeJS语言编写,运行在云环境的外部。页面抓取系统的 流程如图3所示,整个页面抓取系统由URL接收模块、页面信息抓取模块、公共组件模块、抓 取结果传送模块以及事件处理模块组成。URL接收模块在PC的3001端口上接收由中心调 度节点传来的URL集合,调用公共组件模块中的JSON格式解析方法,将接收到的JSON格式 数据解析为URL对象的集合,并且,将URL对象集合传递给页面抓取模块,调用页面抓取模 块的getHTMLsO方法。页面抓取模块采用遍历的方式,单独对待抓取的URL集合中的页面 对象进行异步抓取,当已抓取的页面数量等于需要抓取的页面数量时,页面抓取模块发送 页面抓取完成事件,事件处理模块接收到页面抓取完成事件后,调用抓取结果传送模块,将 页面抓取的结果以JSON的格式发送给中心调度节点。以上是页面抓取系统一个完整的抓 取周期,在中心调度接收完页面抓取节点返回的结果后,会将页面抓取节点加入到空闲节 点列表中,再由URL分配策略,为空闲的页面抓取节点分配URL抓取任务。
[0023] (2)URL分配的流程如图4所示。URL分配涉及到URL分配的算法以及中心节点进 行URL分配调度的流程,图4给出的是URL分配调度的流程的描述。在中心节点中,用来描 述页面抓取服务器对象的属性有页面抓取服务器的地址IP、服务器抓取URL数量的基数k、 服务器任务执行次数count、服务器历史平均页面抓取耗时t,通过以上属性,可以唯一的 标识一个页面抓取服务器。除了页面抓取服务器列表,中心调度节点还需要维护待抓取URL 列表、空闲页面抓取服务器列表。当中心调度节点接收完页面抓取服务器传回的数据后,将 该页面抓取服务器加入到空闲页面抓取服务器列表中,同时触发URL分配事件,如果待抓 取URL列表中含有未分配的URL,则URL分配模块根据事先选取的URL分配策略,将带抓取 URL列表中的URL地址分配给空闲页面抓取服务器中的主机上。如果带抓取URL列表中不 含有未分配的URL,则等待下次URL分配事件触发时,再进行URL分配。
[0024] (3)URL分配算法。本发明通过横向和纵向的比较,确定中心节点分配给特定页面 抓取服务器的URL种子的数量。横向比较就是将特定页面抓取服务器与其他抓取服务器 进行比较,从而确定出不同抓取服务器性能上的差距。纵向比较是将页面抓取服务器本次 抓取的耗时与历史抓取耗时相比较,从而消除某些偶然因素对页面抓取服务器性能上的影 响。
[0025] 假设count表示边缘节点的数量,&表示第i个边缘节点抓取页面的平均耗时,则 有公式
【主权项】
1. 一种云环境下分布式网络信息采集方法,其特征在于包含以下步骤: 1) 模型的组成:页面信息采集子系统、页面信息数据处理子系统; 2) 页面信息采集系统创建服务监听端口,接收中心节点分配的URL集合,当接收到中 心节点分配的URL集合后,触发步骤3 ; 3) 页面信息采集系统采用异步的方式,对URL集合中的每个页面进行抓取,抓取完成 后,将包含所有页面信息的结果返回给中心节点; 4) 中心节点将接收到的抓取的结果放到待处理页面集合中,交由云计算平台对页面信 息进行处理,并且将页面服务器加入空闲的服务器列表; 5) 云计算平台提取出页面中所有的超链接,并且对超链接进行过滤,将过滤出来的 URL放入到待分配的URL集合中; 6) 中心节点根据未分配的服务器列表,根据URL分配的策略,将待分配的URL分配给各 个页面信息采集服务器,重复步骤2,直到待分配URL列表为空。
2. 根据权利要求1所述的分布式页面信息采集模型,其特征在于步骤1中,系统的模型 由1个云计算中心以及n个边缘节点组成,在节点的功能上,边缘节点运行页面信息采集子 系统,专门负责页面信息的采集,云计算中心负责数据的处理、URL集合的分配,在节点的连 接方式上,呈现出星型的物理结构。
3. 根据权利要求1中所述的动态URL分配策略(步骤6中),其特征在于,中心节点可 以按照不同的边缘节点的页面抓取效率,在一个基数k的基础上,按照下述公式,为不同的 边缘节点分配不同的URL个数:
其中:count表示边缘节点的数量,表示第i个边缘节点第x次抓取所耗费的时间,n(0) =k〇
【专利摘要】本发明提供了云环境下分布式网络信息采集方法。其主要包括:对于页面信息的采集,采用星型的分布式采集模型,页面信息采集服务器只负责通过异步的方式采集相关网页的页面信息,并将最终的采集结果返回给云服务器,页面信息的处理则在云端进行;关于待采集的URL的分配方式,云服务器根据不同的采集服务器的历史采集效率,动态地为不同的页面采集服务器分配不同的任务个数,从而尽可能地使各个页面采集服务器达到负载均衡的效果。本发明提出的分布式网络信息采集方法,对于通用网络爬虫和主题网络爬虫都适用,可以很好地提高网络爬虫的爬行效率以及解决在分布式环境中网络爬虫的负载均衡问题。
【IPC分类】G06F17-30
【公开号】CN104699757
【申请号】CN201510020854
【发明人】张登银, 于建坤
【申请人】南京邮电大学
【公开日】2015年6月10日
【申请日】2015年1月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1