通用的分布式采集系统的制作方法

文档序号:11230595阅读:473来源:国知局
通用的分布式采集系统的制造方法与工艺

本发明涉及互联网全网数据的分布式高并发采集系统,特别涉及在大数据环境下的高效、实时的数据采集系统,尤其涉及一种通用的分布式采集系统。



背景技术:

近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。百度目前的总数据量已超过1000pb,每天需要处理的网页数据达到10pb~100pb;淘宝累计的交易数据量高达100pb;twitter每天发布超过2亿条消息,新浪微博每天发帖量达到8000万条;中国移动一个省的电话通联记录数据每月可达0.5pb~1pb;一个省会城市公安局道路车辆监控数据三年可达200亿条、总量120tb。而针对当前网络环境中大量数据的采集,传统的人工获取数据和单节点爬虫获取数据已经无法满足需求了,目前已有一些分布式的采集系统,但是在数据采集的各流程中都存在了一定的瓶颈,难以高效的合理利用机器的性能以及大规模的扩展。因此,寻求有效的数据采集技术、方法和手段已经成为社会的迫切需求。



技术实现要素:

本发明要解决的技术问题是提供一种通用的分布式采集系统。

为了解决上述技术问题,本发明采用的技术方案是,通用的分布式采集系统,包括种子仓库、任务调度模块、数据抓取模块、正文页仓库;

种子仓库用于存放需求站点的url并设定信息源类别和采集时间间隔;

任务调度模块用于协调各采集节点的任务负载量;数据抓取模块用于对分配过来的采集任务进行信息抓取,分为列表页抓取和正文页抓取;

任务调度模块和数据抓取模块均包括服务端和客户端,且任务调度模块和数据抓取模块都采用分布式通讯框架;

正文页仓库是用来存储解析出来的正文网页链接,为数据抓取模块中的正文页抓取提供站点入口。

作为优选,任务调度模块采用的基于机器性能的动态哈希任务分配算法,包括以下步骤:

(1)建立机器性能评分模型库,库里容纳了各种型号的cpu、内存以及磁盘性能评分标准;

(2)获取机器配置信息;

(3)获取机器性能评分;

(4)计算性能加权打分w;

(5)创建虚拟节点,虚拟节点基数为2,机器虚拟节点为2*w;

(6)一致性哈希均衡分配任务到每个虚拟节点上;

(7)虚拟节点映射到真实节点;

(8)任务汇总。

作为优选,数据抓取模块包含列表页抓取和正文页抓取。

作为进一步优选,列表页和正文页的识别所采用的列表页识别算法,包括以下步骤:

(9)获取页面的时间字符串个数;

(10)判断时间字符串个数如果大于设定的阈值则判定为待定列表页;

(11)再判断页面锚文本的数量,如果大于设定的阈值,则判定为列表页;

(12)如果上述两种方法都没有判成正文页,则计算页面文本占整个页面空间的比重,大于我们设定的阈值则判定为列表页。

作为优选,数据抓取模块通过基于fibonacci的时间间隔算法的计算而得到抓取策略;基于fibonacci的时间间隔算法包括以下步骤:

(13)设定初始站点下载频率统一为6,对应真实时间间隔为6t分钟,t由人工设定;

(14)在第一轮站点下载完成后,统计并记录所有站点的下载网页数;

(15)在第二轮站点下载完成后,统计并记录所有站点的更新网页数;

(16)利用fibonacci算法,以第一轮的下载数和第二轮的更新数为据,计算站点的下载频率加权值;

(17)根据加权值自动设定下次的下载时间间隔。

作为优选,分布式通讯框架系采用mina分布式通讯框架。

作为优选,正文页仓库采用mongodb数据库,并构建成基于mongodb的分布式链接过滤器,包括以下步骤:

(18)首先在本地建立一个txt格式的布隆文件;

(19)对抽取出的正文页链接进行布隆过滤,已抽取过的链接直接舍弃,新抽到的链接则存储到布隆文件中;

(20)从mongodb数据库中查询是否存在当前新抽到的链接,如果不存在则加入到mongodb数据库中,如果存在则直接舍弃。

本发明的有益效果是:

1、采用基于机器性能的动态哈希任务分配算法,使得可以最大效率的利用机器性能,无论机器性能好坏,都会根据机器的实时负载进行任务的动态均衡分配。

2、采用基于mongodb的分布式链接过滤器,高效的避免了重复的网页采集,使得采集节点的利用更加高效合理。

3、利用基于fibonacci的时间间隔算法,有针对性、目的性的对网页抓取优先级做了最优管理。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明通用的分布式采集系统实施例的结构示意图。

图2是本发明通用的分布式采集系统实施例的动态哈希任务分配算法原理图。

具体实施方式

图1是一种通用的分布式采集系统,包括种子仓库,任务调度模块,数据抓取模块,正文页仓库;种子仓库用于存放需求站点的url并设定信息源类别和采集时间间隔;任务调度模块用于协调各采集节点的任务负载量;数据抓取模块用于对分配过来的采集任务进行信息抓取,分为列表页抓取和正文页抓取;任务调度模块和数据抓取模块均包含了服务端和客户端,都采用了分布式通讯框架;正文页仓库是用来存储解析出来的正文网页链接,为数据抓取模块中的正文页抓取提供站点入口。

图2是一种基于机器性能的动态哈希任务分配算法原理图,假定a,b,c为真实机器物理节点,考虑到a、b、c的性能不一致,假定目前这三台机器的性能权重比是1∶2∶4,采用最小单元1为一个虚拟机器节点,则a机器有1个虚拟的物理节点,b机器有2个虚拟的物理节点,c机器有4个虚拟的物理节点,然后再根据一致性哈希算法,对虚拟的物理节点进行虚拟环节点映射,a对应图中的虚拟节点a1、a2,b对应图中的虚拟节点b′1、b′2、b′1、b″2,c对应图中的虚拟节点c′1、c′2、c″1、c″2、c″′1、c″′2、c″″2、c″″2,所有虚拟节点形成一个由机器性能权重比组成的哈希环。

具体实施步骤如下:

1.建立采集系统所需要的库,包含种子仓库,正文页仓库以及机器性能评分模型库。其中种子仓库用来存储需要下载的站点,种子仓库包含了站点的链接,站点的类别,站点的下载间隔,初始默认值为6,对应真实时间间隔为6t分钟,t由人工设定;正文页仓库是用来存储待下载的正文页链接,是数据抓取模块中的正文页抓取的入口;机器性能评分模型库是根据机器的配置信息为机器性能打分,涵盖了常见的主流硬件和软件配置评分;

2.采用分布式通讯框架mina搭建分布式的任务调度模块和数据抓取模块的服务端和客户端;

3.任务调度模块的服务端定时或定量的从种子仓库取出待下载站点url和类别;任务调度模块的客户端部署到各采集节点上,自动获取机器的配置;根据机器性能评分模型库定时或实时计算各机器节点的动态评分;

4.为各采集节点机器性能加权打分w,创建虚拟节点,虚拟节点基数为2,机器虚拟节点为2*w,并将机器虚拟节点数返回给任务调度服务端;

5.任务调度服务端根据虚拟节点均衡分配任务到每个虚拟节点上;任务分配完成后将虚拟节点映射到真实节点并将各真实节点任务汇总;

6.数据抓取模块的列表页抓取根据站点的下载间隔时间开始执行分配到各机器上的任务;利用列表页识别算法进行列表页和正文页的区分,并通过基于mongodb的分布式文件过滤器对已有正文页进行过滤,将新的正文页存储到正文页仓库中,列表页则继续下载;

7.数据抓取模块的正文页抓取从正文页仓库中获取正文页url,开始采集正文信息。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

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