设计和实现高水平分布式网络爬虫

本人翻译,原创,转载务必注明:哈尔滨工程大学李海波

   

 设计和实现高水平分布式网络爬虫

摘要:纵观网络搜索引擎和其他特殊的搜索工具一样,依赖网络蜘蛛区获得大规模的网页进行索引和分析。这样的网络爬虫会与数以百万计的主机在一定时期或者一周内进行交互。因此随之产生的健壮性、灵活性和可管理性等问题。另外,I/O性能、网络资源和操作系统的限制也会在设计高性能爬虫的时候进行合理的考虑。

    本论文描述和设计了分布式网络爬虫运行在工作站上。网络爬虫的能够在一秒钟之内爬取几百页网页,并防止崩溃或者其他不可预测的事情。并且能够满足大部分的网络爬虫的应用。我们设计了这个系统的软件架构,讨论其性能瓶颈,并且用足够的技术去实现其高性能。我们将实验结果附加在后面。

简介

   万维网于1993年的几千个网页,增长到了现在的20亿网页。因此爆炸性的规模的增长,WEB搜索开始成为挖掘信息最为重要的手段。这些搜索引擎靠网络爬虫大规模的手机网页,通过超级链接遍历网页并在大容量的数据库中检索网页并稍微为用户执行高效的查询检索。很多人多年来一直在关注WEB搜索技术,包括爬取策略、存储、索引和排序技术,还有重要的量化工作如WEB结构分析和WEB图。

   因此高性能的爬虫系统需要顺序的下载成千上万的WEB网页。实际上搜索引擎之间主要的区别在于大小和她们使用的数据库,附加上质量和排序函数的响应时间。尽管最大的搜索引擎,例如google或者altavista,目前仅仅能够覆盖一部分WEB网页,并且大部分她们的数据是几个月前已经过时的。(我们注意到,爬取速度并非是唯一的搜索引擎的瓶颈,查询的规模和响应时间也是主要的问题)。

  大规模搜索引擎的网络爬虫有两个问题。首先,要有良好的爬取策略,这个策略就是决定什么样的网页首先爬取。其次,她能够拥有优异的体系结构趋在每秒钟之内下载大规模的网页,并且能够防止崩溃、可管理、对资源的考虑和WEB服务器。这里第一个问题引发了学术的研究兴趣,包括首先爬取重要的网页,爬取特殊的话题和特殊类型的网页,重新爬取被刷新的网页,或者一定时间段内的爬虫的排序。

  相反的,第二个问题的工作确实很少的。显然的,所有的搜索引擎系统都有高度优化的爬虫,尽管这些系统的细节通常是保密的。唯一的公布细节的就是Mercator,这个是被AltaVista使用的。(另外谷歌的第一版的设计细节也公布了,和Internet Archive的系统)这些很容易构建一个缓慢的爬虫下载少量的网页。构建一个高性能的系统能够每秒下载数百万计的网页,在设计上提出了巨大的挑战。

  大部分近期的网络爬虫策略并不关注这些性能问题,相反,尽量减少网页被下载的必须网页数,或者最大化获取网页的利益。(一个例外是考虑系统的性能关注于爬虫的,在于构建通用的数据库系统,尽管这种体系的效率仍然低于大规模网络爬虫)。以上应用的考虑均是非常有限的贷款下。然而,在大规模的搜索引擎,我们需要合并的良好的爬取策略和优化的体系设计。

  在这篇论文中,我们描述和设计实现了一个基于网络工作站的优化系统。爬取策略和我们的工作是正交的。我们描述这个系统使用典型的简单的宽度优先搜索,尽管系统可以使用其他的办法。我们主要的兴趣在于I/0和网络效率方面,并且在分布式的爬取的可扩展性上包括爬取速度和参与的节点。我们使用爬虫去获取大规模的数据集,去提供给WEB搜索技术例如索引、查询过程和链接分析。我们注意到高性能爬虫并没有被学术研究者重视,尽管有些群体做了一系列的实验。这里依旧有许多有趣的问题在实际的海量数据集应该受到学术界的更加重视。

1.1 爬行程序应用

每个爬虫爬取网页的方法都是一道亮丽的风景线。我们现在描述一些爬虫典型的爬去策略:

  宽度优先爬取:为了构建主要的搜索引擎或者大规模的网络存档栈,高性能爬虫的爬取开始于小的网页集合,并且遍历其他超级链接,采用宽度优先的方式。实际上,网页并不是严格按照宽度优先遍历的,因为会使用各种各样的爬取策略,比如对于一个WEB站点进行修剪,或者优先爬取更重要的网页。

  重新更新

你可能感兴趣的:(搜索引擎,网络爬虫,数据结构,搜索引擎,url,dns服务器,磁盘)