CN111274467A - 面向大规模数据采集的三层分布式去重架构和方法 - Google Patents
面向大规模数据采集的三层分布式去重架构和方法 Download PDFInfo
- Publication number
- CN111274467A CN111274467A CN201911413796.2A CN201911413796A CN111274467A CN 111274467 A CN111274467 A CN 111274467A CN 201911413796 A CN201911413796 A CN 201911413796A CN 111274467 A CN111274467 A CN 111274467A
- Authority
- CN
- China
- Prior art keywords
- distributed
- url
- value
- deduplication
- webpage
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000013480 data collection Methods 0.000 claims 8
- 230000006855 networking Effects 0.000 claims 1
- 230000009193 crawling Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
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/951—Indexing; Web crawling techniques
-
- 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/23—Updating
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种针对大规模数据采集的三层分布式去重架构和方法,架构包括本地缓存层、分布式缓存层、分布式索引层,本地缓存层用于对采集过的URL和网页内容分别进行MD5值计算,使用Hash表结构保存在本地;进行去重判断时,首先从本地缓存中进行;分布式缓存层使用memcached保存所有爬虫近期爬取的网页信息的MD5值;分布式索引层使用SolrCloud服务器,存储全量的主键MD5值,独立于采集结果实体数据索引,并与之一一对应,确保了采集数据去重的完备性,并分担了实体数据索引的性能压力。本发明结合本地缓存、分布式缓存及分布式索引来高效地判断重复网页,特别适于网页规模庞大、内容更新频繁需要反复爬取的应用场景。
Description
技术领域
本发明涉及分布式网络数据处理技术领域,具体涉及一种面向大规模数据采集的三层分布式去重架构和方法。
背景技术
随着互联网规模的快速增长,互联网数据的价值越来越受到重视。互联网数据具有数据量巨大、更新频率快、价值密度低等特点,需要进行大规模、分布式的数据采集。各个爬虫服务器之间高效的网页去重工作是分布式数据采集的重点和难点。
目前已有的网页去重方法主要分为两类,研究最多的一类是对相似网页去重的研究,这种方法的一个主要功能是可以发现网页的镜像;另外一类认为URL完全相同的网页称为重复网页。
针对相似网页去重方法中,比较典型的是基于聚类和特征码的方法。基于聚类的方法时间复杂度过高,不适合大规模数据采集;基于特征码的精确匹配不能抵抗网页转载时产生的噪音。排除相同URL方法易于实现,但未利用网页文本内容结构信息,不能对转载造成的重复网页去重。
发明内容
本发明的目的在于提供一种面向大规模数据采集的三层分布式去重架构和方法。
实现本发明目的的技术解决方案为:一种面向大规模数据采集的分布式去重架构,包括:
本地缓存层,用于对网页URL和网页内容进行MD5值计算,采用Hash表结构保存在本地,供本地爬虫程序进行去重;
分布式缓存层,使用memcached服务器,存储所有爬虫程序在近期采集的网页内容的MD5值,为分布式爬虫提供高速主键缓存与读取查重能力;
分布式索引层,使用SolrCloud服务器,存储全量的主键MD5值,独立于采集结果实体数据索引,并与之一一对应。
进一步的,所述架构用于新闻类网站数据采集去重时,保存对新闻正文MD5值的同时,对新闻内容的标题、发布时间、URL进行MD5值计算和存储。
进一步的,所述架构用于网站评论类数据采集去重时,对评论所在页面URL、评论编号、日期、内容进行MD5值计算和存储。
进一步的,所述架构用于社交网站数据采集去重时,对目标社交媒体用户ID、内容、发布日期、内容编号进行MD5值计算和存储。
进一步的,所述架构用于智库类网站数据采集去重时,对目标智库网站发布的页面URL、文档URL、页面内容、文档内容进行MD5值计算和存储。
一种面向大规模数据采集的三层分布式去重方法,该方法包括:
本地缓存层去重,对网页URL和网页内容进行MD5值计算和本地缓存对比去重;
分布式缓存去重,对网页URL和网页内容进行MD5值计算和分布式缓存对比去重;
分布式索引去重,对网页URL和网页内容进行MD5值计算和分布式索引对比去重;
进一步的,所述的本地缓存层执行去重步骤为:
数据采集程序抓去URL内容,分别生成URL的MD5值和URL对应内容的MD5值,然后从本地缓存中查询URL的MD5值是否存在,如果不存在则从分布式缓存层查询,如果存在则从本地缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则更新入库。
进一步的,分布式缓存层执行去重步骤为:
从分布式缓存中查询URL的MD5值是否存在,如果不存在则从分布式索引查询,如果存在则从分布式缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则将目标URL的MD5值和URL对应内容的MD5值加入分布式缓存中。
进一步的,所述分布式缓存层新增或更新记录时,需要判断缓存中累计增加和更新的记录数量是否大于阈值K,若大于则将所有增加和更新记录写入分布式索引中。
进一步的,分布式索引层执行去重步骤为:
从分布式索引中查询网页URL和网页内容对应的MD5值是否存在,如果存在,则从分布式索引中获取该URL对应的网页内容的MD5值,与待查询网页MD5值对比;如果值相等则抛弃待查询网页,如果值不相等则将待查询URL和网页内容写入本地缓存和分布式缓存中。
与现有技术相比,本发明的技术效果为:本发明提出了一种三层分布式网页去重架构,结合本地缓存、分布式缓存及分布式索引来高效地判断重复网页,特别适于网页规模庞大、内容更新频繁需要反复爬取的应用场景。该架构可以支持分布式网络爬虫环境下大规模的网页去重需求,并且具有较好的可扩展性。
附图说明
图1是本发明三层分布式去重架构结构图。
图2是本发明面向大规模数据采集的三层分布式去重方法流程图。
具体实施方式
一种面向大规模数据采集的分布式去重架构,其特征在于,包括:
本地缓存层,用于对网页URL和网页内容进行MD5值计算,采用Hash表结构保存在本地,供本地爬虫程序进行快速去重;
分布式缓存层:使用memcached服务器,存储所有爬虫程序在近期采集的网页内容的MD5值,为分布式爬虫提供高速主键缓存与读取查重能力;
分布式索引层:使用SolrCloud服务器,存储全量的主键MD5值,独立于采集结果实体数据索引,并与之一一对应,确保了采集数据去重的完备性,并分担了实体数据索引的性能压力。
分布式去重架构,还用于:新闻类网站数据采集去重,保存对新闻正文MD5值的同时,对新闻内容的标题、发布时间、URL进行MD5值计算和存储。
分布式去重架构,还用于:网站评论类数据采集去重,对评论所在页面URL、评论编号、日期、内容等信息进行MD5值计算和存储。
分布式去重架构,还用于:社交网站数据采集去重,对目标社交媒体用户ID、内容、发布日期、内容编号等信息进行MD5值计算和存储。
分布式去重架构,其特征在于,还用于:智库类网站数据采集去重,对目标智库网站发布的页面URL、文档URL、页面内容、文档内容等信息进行MD5值计算和存储。
一种面向大规模数据采集的三层分布式去重方法,该方法包括:
本地缓存层去重,对网页URL和网页内容进行MD5值计算和本地缓存对比去重;
分布式缓存去重,对网页URL和网页内容进行MD5值计算和分布式缓存对比去重;
分布式索引去重,对网页URL和网页内容进行MD5值计算和分布式索引对比去重;
所述的本地缓存层执行去重步骤为:数据采集程序抓去URL内容,分别生成URL的MD5值和URL对应内容的MD5值,然后从本地缓存中查询URL的MD5值是否存在,如果不存在则从分布式缓存层查询,如果存在则从本地缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则更新入库。
分布式缓存层执行去重步骤为:从分布式缓存中查询URL的MD5值是否存在,如果不存在则从分布式索引查询,如果存在则从分布式缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则将目标URL的MD5值和URL对应内容的MD5值加入分布式缓存中。
分布式索引层执行去重步骤为:从分布式索引中查询网页URL和网页内容对应的MD5值是否存在,如果存在,则从分布式索引中获取该URL对应的网页内容的MD5值,与待查询网页MD5值对比;如果值相等则抛弃待查询网页,如果值不相等则将待查询URL和网页内容写入本地缓存和分布式缓存中。
所述分布式缓存层新增或更新记录时,需要判断缓存中累计增加和更新的记录数量是否大于阈值K,若大于则将所有增加和更新记录写入分布式索引中。
下面结合实施例对本发明进行详细说明。
实施例
图1示出了本发明的面向大规模数据采集的三层分布式去重架构,第一层为爬虫程序本地缓存,采集的网页首先会保存在本地缓存中,在进行去重判断时,首先会从本地缓存中进行。第二层为分布式缓存,其作为一个全局的去重缓存,缓存了所有爬虫最近一段时间内爬取的网页信息,分布式缓存既能够保证去重的高效性,也能够解决各个爬虫本地缓存信息不能在爬虫间共享的问题,通过访问分布式缓存,单台爬虫就能获取其它爬虫最近一段时间的爬取记录,从而判断网页是否已经被其它爬虫爬取过。第三层分布式索引存储所有爬取过的网页信息,爬虫爬取过的所有网页信息均保留在分布式索引中。
图2示出了本发明的面向大规模数据采集的三层分布式去重方法,该方法包括:
步骤1,爬取URL内容,分别生成URL的MD5值和URL对应内容的MD5值。
步骤2,从本地缓存中查询步骤1生成的URL的MD5是否存在;如果存在,则执行步骤3,如果不存在,则执行步骤7;
步骤3,从本地缓存中获取该URL对应的HTMl内容的MD5值,与步骤1中的HTMl内容的MD5值进行比较;如果值相等则抛弃,如果值不等则执行步骤4;
步骤4,爬取URL内容入库;
步骤5,更新当前URL的MD5值及HTMl内容的MD5值至本地缓存以及分布式缓存中;
步骤6,判断本地缓存累计增加和更新的记录数量是否大于阈值K,若大于则将所有增加和更新的记录写入分布式索引中,当前URL去重流程结束,执行队列中下一条URL去重;
步骤7,从分布式缓存中查询步骤1生成的URL的MD5是否存在;如果存在,则执行步骤8,如果不存在,则执行步骤9;
步骤8,从分布式缓存中获取该URL对应的HTMl内容的MD5值,与步骤1中的HTMl内容的MD5值进行比较;如果值相等则抛弃,如果值不等则执行步骤4;
步骤9,从分布式索引中查询步骤1生成的URL的MD5是否存在;如果存在,则执行步骤10,如果不存在,则执行步骤11;
步骤10,从分布式索引中获取该URL对应的HTMl内容的MD5值,与步骤1中的HTMl内容的MD5值进行比较;如果值相等则抛弃,如果值不等则执行步骤4;
步骤11,先执行步骤4,并将URL的MD5及对应HTMl内容MD5值分别写入本地缓存和分布式缓存中,再执行步骤6。
Claims (10)
1.一种面向大规模数据采集的分布式去重架构,其特征在于,包括:
本地缓存层,用于对网页URL和网页内容进行MD5值计算,采用Hash表结构保存在本地,供本地爬虫程序进行去重;
分布式缓存层,使用memcached服务器,存储所有爬虫程序在近期采集的网页内容的MD5值,为分布式爬虫提供高速主键缓存与读取查重能力;
分布式索引层,使用SolrCloud服务器,存储全量的主键MD5值,独立于采集结果实体数据索引,并与之一一对应。
2.根据权利要求1所述的面向大规模数据采集的分布式去重架构,其特征在于,所述架构用于新闻类网站数据采集去重时,保存对新闻正文MD5值的同时,对新闻内容的标题、发布时间、URL进行MD5值计算和存储。
3.根据权利要求1所述的面向大规模数据采集的分布式去重架构,其特征在于,所述架构用于网站评论类数据采集去重时,对评论所在页面URL、评论编号、日期、内容进行MD5值计算和存储。
4.根据权利要求1所述的面向大规模数据采集的分布式去重架构,其特征在于,所述架构用于社交网站数据采集去重时,对目标社交媒体用户ID、内容、发布日期、内容编号进行MD5值计算和存储。
5.根据权利要求1所述的面向大规模数据采集的分布式去重架构,其特征在于,所述架构用于智库类网站数据采集去重时,对目标智库网站发布的页面URL、文档URL、页面内容、文档内容进行MD5值计算和存储。
6.一种面向大规模数据采集的三层分布式去重方法,其特征在于,该方法包括:
本地缓存层去重,对网页URL和网页内容进行MD5值计算和本地缓存对比去重;
分布式缓存去重,对网页URL和网页内容进行MD5值计算和分布式缓存对比去重;
分布式索引去重,对网页URL和网页内容进行MD5值计算和分布式索引对比去重。
7.根据权利要求6所述的面向大规模数据采集的三层分布式去重方法,其特征在于,所述的本地缓存层执行去重步骤为:
数据采集程序抓去URL内容,分别生成URL的MD5值和URL对应内容的MD5 值,然后从本地缓存中查询URL的MD5值是否存在,如果不存在则从分布式缓存层查询,如果存在则从本地缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则更新入库。
8.根据权利要求6所述的面向大规模数据采集的三层分布式去重方法,其特征在于,分布式缓存层执行去重步骤为:
从分布式缓存中查询URL的MD5值是否存在,如果不存在则从分布式索引查询,如果存在则从分布式缓存中获取URL对应内容的MD5值对比,如果值相等的抛弃,如果不相等则将目标URL的MD5值和URL对应内容的MD5值加入分布式缓存中。
9.根据权利要求8所述的分布式缓存层,其特征在于,所述分布式缓存层新增或更新记录时,需要判断缓存中累计增加和更新的记录数量是否大于阈值K,若大于则将所有增加和更新记录写入分布式索引中。
10.根据权利要求6所述的面向大规模数据采集的三层分布式去重方法,其特征在于,分布式索引层执行去重步骤为:
从分布式索引中查询网页URL和网页内容对应的MD5值是否存在,如果存在,则从分布式索引中获取该URL对应的网页内容的MD5值,与待查询网页MD5值对比;如果值相等则抛弃待查询网页,如果值不相等则将待查询URL和网页内容写入本地缓存和分布式缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911413796.2A CN111274467A (zh) | 2019-12-31 | 2019-12-31 | 面向大规模数据采集的三层分布式去重架构和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911413796.2A CN111274467A (zh) | 2019-12-31 | 2019-12-31 | 面向大规模数据采集的三层分布式去重架构和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111274467A true CN111274467A (zh) | 2020-06-12 |
Family
ID=71001593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911413796.2A Pending CN111274467A (zh) | 2019-12-31 | 2019-12-31 | 面向大规模数据采集的三层分布式去重架构和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274467A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015172567A1 (zh) * | 2014-05-12 | 2015-11-19 | 中国科学院计算机网络信息中心 | 一种互联网信息搜索聚合呈现方法 |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
-
2019
- 2019-12-31 CN CN201911413796.2A patent/CN111274467A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015172567A1 (zh) * | 2014-05-12 | 2015-11-19 | 中国科学院计算机网络信息中心 | 一种互联网信息搜索聚合呈现方法 |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
Non-Patent Citations (1)
Title |
---|
贲兴龙等: "一种面向大规模网页去重的三层分布式架构", 《计算机与数字工程》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093466B2 (en) | Incremental out-of-place updates for index structures | |
US10108544B1 (en) | Dynamic duplication estimation for garbage collection | |
CN103020315B (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
CN103548003B (zh) | 用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 | |
CN106484828B (zh) | 一种分布式互联网数据快速采集系统及采集方法 | |
US9122769B2 (en) | Method and system for processing information of a stream of information | |
Alink et al. | XIRAF–XML-based indexing and querying for digital forensics | |
CN100498782C (zh) | 一种在全文检索系统中快速更新数据域的方法 | |
US8041893B1 (en) | System and method for managing large filesystem-based caches | |
CN102737133B (zh) | 一种实时搜索的方法 | |
CN106951557B (zh) | 日志关联方法、装置和应用其的计算机系统 | |
CN106155934B (zh) | 一种云环境下基于重复数据的缓存方法 | |
CN104182482B (zh) | 一种新闻列表页判断方法及筛选新闻列表页的方法 | |
EP2802979A2 (en) | Processing store visiting data | |
CN108241615A (zh) | 数据去重方法和装置 | |
CN111104377B (zh) | 文件管理的方法、电子设备和计算机可读存储介质 | |
Davison et al. | Finding Relevant Website Queries. | |
CN108416016A (zh) | 一种cdn按前缀缓存清除方法和系统 | |
Zhang et al. | Recovering SQLite data from fragmented flash pages | |
KR20130136730A (ko) | 비정형 로그 압축 저장 및 조회 방법 및 장치 | |
CN102521383A (zh) | 一种分布式系统中的海量文件存储和访问方法 | |
CN1612137A (zh) | 用于存档和检索标记语言文档的方法和系统 | |
US8984028B2 (en) | Systems and methods for storing data and eliminating redundancy | |
Zhang et al. | Exploring large-scale small file storage for search engines | |
US10572452B1 (en) | Context-based read-ahead for B+ tree data structures in a deduplication system |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200612 |