基于分布式数据库的网页URL去重方法技术

技术编号:13743234 阅读:141 留言:0更新日期:2016-09-23 04:27
本发明专利技术涉及分布式数据库技术领域,特别是一种基于分布式数据库的网页URL去重方法,包括以下步骤,步骤S101:获取待爬取URL,由分布式爬虫获取网页待爬取的网页URL;步骤S102:计算URL的hash值;步骤S103:查询数据库,分布式爬虫将各自采集库中的URL压缩后统一发送到分布式数据库做去重处理;步骤S104:反馈结果,将数据查询结果状态返回;步骤S105:数据采集,爬虫节点根据返回结果状态确定该网页是否可以爬取。采用上述方法后,本发明专利技术的基于分布式数据库的网页URL去重方法,很好地解决了海量URL去重过程中的内存问题、单点问题,同时保证了高查询效率与低碰撞率。

【技术实现步骤摘要】

本专利技术涉及分布式数据库
,特别是一种基于分布式数据库的网页URL去重方法
技术介绍
网页URL去重对爬虫有着重要意义。目前的去重策略主要分为两类:基于内存的去重方法、基于磁盘的去重方法。基于内存的去重方法需要面对内存溢出的问题,尤其是在面对海量日益增长的网页URL的情况下。目前通用的解决方案是采用Bloom Filter,这种方法虽然解决了内存溢出问题,但却牺牲了准确率,随着数据量的增大,碰撞概率也会增大。基于磁盘的去重方法不存在内存溢出问题,这类方法一般采用数据库去重的方式。对于传统关系型数据库,在处理海量URL去重时会面临单点问题以及查询效率随数据量增长而下降问题。中国专利技术专利CN 104809182 A公开了一种基于动态可分裂Bloom Filter的网络爬虫URL去重方法,该方法的基础是一个动态可分裂Bloom Filter(简记DSBF),它与Interner Archive爬虫和Apoide爬虫中均匀负担URL存取任务的固定结构Bloom Filter不同,而是具有可按需灵活分裂成多层的动态可扩展结构。虽然采用Bloom Filter可以达到节省内存的目的,但这种空间高效是以牺牲准确率为前提的。
技术实现思路
本专利技术需要解决的技术问题提供一种基于去中心化的分布式数据库的去重方法。为解决上述的技术问题,本专利技术的基于分布式数据库的网页URL去重方法,包括以下步骤,包括以下步骤,步骤S101:获取待爬取URL,由分布式爬虫获取网页待爬取的网页URL;步骤S102:计算URL的hash值;步骤S103:查询数据库,分布式爬虫将各自采集库中的URL压缩后统一发送到分布式数据库做去重处理;步骤S104:反馈结果,将数据查询结果状态返回;步骤S105:数据采集,爬虫节点根据返回结果状态确定该网页是否可以爬取。进一步的,所述步骤S104具体包括如下步骤,步骤S1041:判断数据库中数据是否存在;如果不存在,则进入步骤S1042;如果存在,则进入步骤S1043;步骤S1042:直接写入该数据,然后返回成功,进入步骤S1044;步骤S1043:返回失败;步骤S1044:将数据库查询结果专题返回分布式爬虫所在节点。进一步的,所述步骤S102中所述计算URL的hash值具体为利用MurmurHash方法将网页URL映射为long型的hash值。进一步的,所述步骤S103中所述分布式数据库采用去中心化结构,所述分布式数据库存储时采用一致性哈希算法。更进一步的,所述一致性哈希算法采用虚拟节点方式,所述虚拟节点就是将
一个实际的物理节点划分成多个不连续的虚拟节点,当有节点宕机时,该节点的数据会均匀分配到其他物理节点。采用上述方法后,本专利技术的基于分布式数据库的网页URL去重方法,很好地解决了海量URL去重过程中的内存问题、单点问题,同时保证了高查询效率与低碰撞率。附图说明下面将结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术基于分布式数据库的网页URL去重方法的流程图。具体实施方式如图1所示,本专利技术的基于分布式数据库的网页URL去重方法,包括以下步骤,步骤S101:获取待爬取URL,由分布式爬虫获取网页待爬取的网页URL。步骤S102:计算URL的hash值;利用MurmurHash方法将网页URL映射为long型的hash值。MurmurHash的优点是高运算性能,低碰撞率。此外,该算法还可以实现对数据的压缩,进而提高通信效率,节省存储空间。步骤S103:查询数据库,分布式爬虫将各自采集库中的URL压缩后统一发送到分布式数据库做去重处理。本专利技术中的数据库系统采用去中心化的结构,实现的主要技术手段是一致性哈希。一致性哈希算法是分布式系统中常用的算法,它的优势是稳定性高,支持动态扩展。在一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的将数据hash值按节点数求余的方法,会导致扩展的问题:当有机器加入或退出这个集群,则所有的数据映射都将无效。而一致性hash则先将各个节点映射到一个虚拟的环上,环的周长为hash算法的取值范围。数据存储时,会
根据其hash值将数据顺时针分配到最近的节点上。配合备份策略,当有节点宕机时,该节点所负责的数据会顺时针传递到最近的节点负责存储。一致性hash可能导致的问题之一就是“雪崩”问题,即当有节点宕机时,会导致最近节点负载急剧上升,进而使该节点宕机,如此反复,整个集群就会失效。本专利技术采用虚拟节点的方式来避免这一问题。虚拟节点就是将一个实际的物理节点划分成多个不连续的虚拟节点,当有节点宕机时,该节点的数据会均匀分配到其它物理节点。步骤S104:反馈结果,将数据查询结果状态返回,具体包括以下步骤,步骤S1041:判断数据库中数据是否存在;如果不存在,则进入步骤S1042;如果存在,则进入步骤S1043;步骤S1042:直接写入该数据,然后返回成功,进入步骤S1044;步骤S1043:返回失败;步骤S1044:将数据库查询结果专题返回分布式爬虫所在节点。步骤S105:数据采集,爬虫节点根据返回结果状态确定该网页是否可以爬取。本专利技术具有以下几个优点:1)采用基于磁盘的去重方式。基于内存的去重方式虽然能达到很高的处理性能,但应对数据急速膨胀的能力不足。对像搜索引擎这样的海量数据采集系统而言,按照常规的策略完全在内存中存放是不可能的。目前比较有效的策略是采用BloomFilter来达到节省内存的目的,但这种空间高效是以牺牲准确率为前提的。因此,本专利技术采用基于磁盘存储的方式,可以完全忽略海量数据所引发的内存问题。2)基于去中心化的分布式数据库。数据库大小的线型增长,会导致查询数据库的响应时间以指数方式增长。传统数据库虽然理论上支持Sharding机制,但实际操作中却困难重重。鉴于分布式数据库在支持该机制上有着天然的优势,因此,本专利技术采用了基于分布式数据库的架构,以保证数据库的在数据量急速增长的场景中的仍然保持较高的查询效率。此外,本专利技术采用去中心化的结构,通过数据冗余和一致性hash策略来保证数据的高效路由以及数据库集群的高可用性。3)利用Murmur Hash对网页URL进行压缩。网页的URL多数比较长,直接存储会耗费很大的存储空间。因此,本专利技术采用Murmur Hash算法实现对数据的压缩,不仅保证了去重的低碰撞率,也提高了数据采集节点与数据库集群的通信效率,同时有效地节省了磁盘存储空间。虽然以上描述了本专利技术的具体实施方式,但是本领域熟练技术人员应当理解,这些仅是举例说明,可以对本实施方式作出多种变更或修改,而不背离专利技术的原理和实质,本专利技术的保护范围仅由所附权利要求书限定。本文档来自技高网
...

【技术保护点】
一种基于分布式数据库的网页URL去重方法,其特征在于,包括以下步骤,步骤S101:获取待爬取URL,由分布式爬虫获取网页待爬取的网页URL;步骤S102:计算URL的hash值;步骤S103:查询数据库,分布式爬虫将各自采集库中的URL压缩后统一发送到分布式数据库做去重处理;步骤S104:反馈结果,将数据查询结果状态返回;步骤S105:数据采集,爬虫节点根据返回结果状态确定该网页是否可以爬取。

【技术特征摘要】
1.一种基于分布式数据库的网页URL去重方法,其特征在于,包括以下步骤,步骤S101:获取待爬取URL,由分布式爬虫获取网页待爬取的网页URL;步骤S102:计算URL的hash值;步骤S103:查询数据库,分布式爬虫将各自采集库中的URL压缩后统一发送到分布式数据库做去重处理;步骤S104:反馈结果,将数据查询结果状态返回;步骤S105:数据采集,爬虫节点根据返回结果状态确定该网页是否可以爬取。2.按照权利要求1所述的基于分布式数据库的网页URL去重方法,其特征在于,所述步骤S104具体包括如下步骤,步骤S1041:判断数据库中数据是否存在;如果不存在,则进入步骤S1042;如果存在,则进入步骤S1043;步骤S1042:直接写入该数据,然后返回成功,进入步骤S1044;步...

【专利技术属性】
技术研发人员:陈丹黄三伟
申请(专利权)人:湖南蚁坊软件有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1