CN107145556B - 通用的分布式采集系统 - Google Patents
通用的分布式采集系统 Download PDFInfo
- Publication number
- CN107145556B CN107145556B CN201710298794.8A CN201710298794A CN107145556B CN 107145556 B CN107145556 B CN 107145556B CN 201710298794 A CN201710298794 A CN 201710298794A CN 107145556 B CN107145556 B CN 107145556B
- Authority
- CN
- China
- Prior art keywords
- page
- capturing
- module
- text page
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种通用分分布式采集系统,包括种子仓库、任务调度模块、数据抓取模块、正文页仓库;种子仓库用于存放需求站点的URL并设定信息源类别和采集时间间隔;任务调度模块用于协调各采集节点的任务负载量;数据抓取模块用于对分配过来的采集任务进行信息抓取,分为列表页抓取和正文页抓取;任务调度模块和数据抓取模块均包括服务端和客户端,并且都采用了分布式通讯框架;正文页仓库是用来存储解析出来的正文网页链接,为数据抓取模块中的正文页抓取提供站点入口。
Description
技术领域
本发明涉及互联网全网数据的分布式高并发采集系统,特别涉及在大数据环境下的高效、实时的数据采集系统,尤其涉及一种通用的分布式采集系统。
背景技术
近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。百度目前的总数据量已超过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,开始采集正文信息。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (7)
1.通用的分布式采集系统,其特征在于:包括种子仓库、任务调度模块、数据抓取模块、正文页仓库;
所述种子仓库用于存放需求站点的URL并设定信息源类别和采集时间间隔;
所述任务调度模块用于协调各采集节点的任务负载量;
数据抓取模块用于对分配过来的采集任务进行信息抓取,且分为列表页抓取和正文页抓取;
所述任务调度模块和数据抓取模块均包括服务端和客户端,且任务调度模块和数据抓取模块都采用分布式通讯框架;
所述正文页仓库是用来存储解析出来的正文网页链接,为数据抓取模块中的正文页抓取提供站点入口;
所述数据抓取模块通过基于Fibonacci的时间间隔算法的计算而得到抓取策略;所述基于Fibonacci的时间间隔算法包括以下步骤:
(1)设定初始站点下载频率统一为6,对应真实时间间隔为6T分钟,T由人工设定;
(2)在第一轮站点下载完成后,统计并记录所有站点的下载网页数;
(3)在第二轮站点下载完成后,统计并记录所有站点的更新网页数;
(4)利用Fibonacci算法,以第一轮的下载数和第二轮的更新数为依据,计算站点的下载频率加权值;
(5)根据加权值自动设定下次的下载时间间隔。
2.根据权利要求1所述的分布式采集系统,其特征在于:所述任务调度模块采用的基于机器性能的动态哈希任务分配算法,包括以下步骤:
(6)建立机器性能评分模型库,库里容纳了各种型号的cpu、内存以及磁盘性能评分标准;
(7)获取机器配置信息;
(8)获取机器性能评分;
(9)计算性能加权打分w;
(10)创建虚拟节点,虚拟节点基数为2,虚拟节点为2*w;
(11)一致性哈希均衡分配任务到每个虚拟节点上;
(12)虚拟节点映射到真实节点;
(13)任务汇总。
3.根据权利要求1所述的分布式采集系统,其特征在于:所述数据抓取模块包括列表页抓取和正文页抓取。
4.根据权利要求3所述的分布式采集系统,其特征在于:所述列表页和正文页的识别所采用的列表页识别算法,包括以下步骤:
(14)获取页面的时间字符串个数;
(15)判断时间字符串个数如果大于设定的阈值则判定为待定列表页;
(16)再判断页面锚文本的数量,如果大于设定的阈值,则判定为列表页;
(17)如果经过步骤(15)和步骤(16)都没有判成正文页,则计算页面文本占整个页面空间的比重,大于我们设定的阈值则判定为正文页。
5.根据权利要求1所述的分布式采集系统,其特征在于:所述分布式通讯框架系采用Mina分布式通讯框架。
6.根据权利要求1所述的分布式采集系统,其特征在于:所述正文页仓库采用Mongodb数据库。
7.根据权利要求6所述的分布式采集系统,其特征在于:利用所述的Mongodb数据库构建一个基于Mongodb的分布式链接过滤器,包括以下步骤:
(18)首先在本地建立一个TXT格式的布隆文件;
(19)对抽取出的正文页链接进行布隆过滤,已抽取过的链接直接舍弃,新抽到的链接则存储到布隆文件中;
(20)从Mongodb数据库中查询是否存在当前新抽到的链接,如果不存在则加入到Mongodb数据库中,如果存在则直接舍弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298794.8A CN107145556B (zh) | 2017-04-28 | 2017-04-28 | 通用的分布式采集系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298794.8A CN107145556B (zh) | 2017-04-28 | 2017-04-28 | 通用的分布式采集系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107145556A CN107145556A (zh) | 2017-09-08 |
CN107145556B true CN107145556B (zh) | 2020-12-29 |
Family
ID=59775061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710298794.8A Active CN107145556B (zh) | 2017-04-28 | 2017-04-28 | 通用的分布式采集系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145556B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798106B (zh) * | 2017-10-31 | 2023-04-18 | 广东思域信息科技有限公司 | 一种分布式爬虫系统中的url去重方法 |
CN109471709B (zh) * | 2018-10-16 | 2022-02-18 | 深圳中顺易金融服务有限公司 | 基于Apache Oozie框架处理大数据的流程任务的调度方法 |
CN109800236A (zh) * | 2019-01-28 | 2019-05-24 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN109783564A (zh) * | 2019-01-28 | 2019-05-21 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN110532251B (zh) * | 2019-08-28 | 2021-11-05 | 东北大学 | 基于布隆过滤器算法的地震台网大数据去重的方法 |
CN111309482B (zh) * | 2020-02-20 | 2023-08-15 | 浙江亿邦通信科技有限公司 | 基于哈希算法的区块链任务分配系统、装置及可存储介质 |
CN112434205A (zh) * | 2020-11-30 | 2021-03-02 | 北京秒针人工智能科技有限公司 | 基于数据站点的数据集成抓取方法、系统及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112025A (zh) * | 2014-08-01 | 2014-10-22 | 中国人民解放军国防科学技术大学 | 处理节点计算能力感知的虚拟资产数据划分方法 |
CN104182482A (zh) * | 2014-08-06 | 2014-12-03 | 中国科学院计算技术研究所 | 一种新闻列表页判断方法及筛选新闻列表页的方法 |
CN106021608A (zh) * | 2016-06-22 | 2016-10-12 | 广东亿迅科技有限公司 | 一种分布式爬虫系统及其实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053426B2 (en) * | 2013-01-30 | 2015-06-09 | Harris Corporation | Distributed multi-layer particle swarm optimization based cognitive network |
-
2017
- 2017-04-28 CN CN201710298794.8A patent/CN107145556B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112025A (zh) * | 2014-08-01 | 2014-10-22 | 中国人民解放军国防科学技术大学 | 处理节点计算能力感知的虚拟资产数据划分方法 |
CN104182482A (zh) * | 2014-08-06 | 2014-12-03 | 中国科学院计算技术研究所 | 一种新闻列表页判断方法及筛选新闻列表页的方法 |
CN106021608A (zh) * | 2016-06-22 | 2016-10-12 | 广东亿迅科技有限公司 | 一种分布式爬虫系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107145556A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145556B (zh) | 通用的分布式采集系统 | |
CN102722563B (zh) | 页面显示方法及装置 | |
CN102426610B (zh) | 微博搜索排名方法及微博搜索引擎 | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN102710795B (zh) | 热点聚合方法及装置 | |
CN104182506A (zh) | 日志管理方法 | |
CN107943838B (zh) | 一种自动获取xpath生成爬虫脚本的方法及系统 | |
US20100287152A1 (en) | System, method and computer readable medium for web crawling | |
CN103428076A (zh) | 向多类型终端或应用发送信息的方法和装置 | |
CN103440139A (zh) | 一种面向主流微博网站微博id的采集方法及工具 | |
CN104869009A (zh) | 网站数据统计的系统和方法 | |
CN107809383A (zh) | 一种基于mvc的路径映射方法及装置 | |
CN102968591B (zh) | 基于行为片段共享的恶意软件特征聚类分析方法及系统 | |
CN104601408A (zh) | 用于非开放网络环境的网站数据统计及分析方法及系统 | |
CN104615765A (zh) | 一种移动用户上网记录的数据处理方法及装置 | |
CN103729479A (zh) | 基于分布式文件存储的网站页面内容统计的方法和系统 | |
RU2701040C1 (ru) | Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах | |
CN107580052A (zh) | 自演进的网络自适应爬虫方法及系统 | |
US10491606B2 (en) | Method and apparatus for providing website authentication data for search engine | |
CN107040532B (zh) | 一种使用验证码校验的数据评估装置 | |
CN106599120A (zh) | 基于流处理框架的数据处理方法及装置 | |
CN104462242B (zh) | 网页回流量统计方法及装置 | |
CN103761257A (zh) | 基于移动浏览器的网页处理方法及系统 | |
CN106897313B (zh) | 一种海量用户业务偏好评估方法和装置 | |
CN103605770A (zh) | 网页模板生成方法和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Hu Gan Inventor after: Zheng Zhonghua Inventor before: Hu Gan Inventor before: Zhou Yinxing Inventor before: Yang Dong Inventor before: Dong Zhengjiang Inventor before: Chen Huan Inventor before: Zheng Zhonghua |
|
GR01 | Patent grant | ||
GR01 | Patent grant |