一般来说单个爬虫的性能有限,不能再合理的时间范围内抓取到足够数目的相关网页。所以在实际的应用中一般做法是设计一个分布式的爬虫,让每个爬虫节点就近抓取靠近他的网站,然后把结构进行整合反馈给用户。分布式技术应用于网络爬虫中,不仅可以降低运营的成本,而且能够大幅度提高爬虫的性能。尤其是在当今云计算正处于飞速发展时期,更是带动了分布式技术的发展。

所谓分布式技术其实质上是一种基于网络的计算机处理技术。一个分布式系统(Distributed System)是一组逻辑和物理上互联的处理单元的集合。其实质就是对资源的系统范围的分散控制,以达到应用程序的协同执行。这种系统不要求单台计算机的功能十分强大,故能降低成本。分布式系统具有快速访问、多用户使用的优点。系统中的每台计算机可以方便快捷的访问其他内部节点的信息文件,它既可以为本地用户的特殊要求服务,也可以为网络中其他用户服务,实现不同计算机之间的通信与协同工作。

云计算(Cloud Computing)是分布式处理、并行处理、网格计算的发展,是虚拟化、效用计算、IaaS、PaaS、SaaS等概念混合跃升的结果。基本原理是将计算任务分布在云端的大量的分布式计算机上、数据也存储在云端,使得企业将有限的资源切换到需要的应用上,降低企业运行的成本。这样带来的结果是中小企业不需要购置专门的计算机系统去满足某一应用需求,只需要想云计算中心支付服务费即可获得响应服务,而云计算中心则大规模的云,以向用户提供服务。总的来说云计算具有如下的特点:超大规模云计算集群、虚拟化、高可靠性、通用性、按需服务、极其廉价。

搜索引擎的发展产生了云计算的概念,而反过来云计算与分布式技术又深刻的影响着搜索引擎的发展。如Google公司率先提出云计算的概念,并保持着在云计算领域的领先,才能多年在搜索引擎中保持霸主地位,Google三大核心技术构成了云计算服务的基础:GFS(Google File System)、MapReduce(分布式计算系统)、BigTable(分布式存储系统)。GFS位于最底层,用于管理数据的存储工作,它将大数据分割成固定大小的数据块,存储在两到三个服务器上,保证了数据具有较好的容错性。MapReduce是Google开发的分布式编程工具,用于1TB数据的大规模数据集并行运算,其实质是将海量数据分割成小数据在不同服务器上运算处理,并将运算结果进行整合,最后返回给用户。BigTable是Google的一种对于半结构化数据进行分布存储与访问的服务,它是建立在GFS与MapReduce基础之上的结构化分布式存储系统,可以使Google能最大限度的利用已有资源,在提供服务的同时降低运行成本。

Google的三大核心技术没有公开其内部的详细设计技术,但通过已有的论文,Apache都将其一一实现:GFS对应的开源项目为HDFS;BigTable对应的是HBase;Hadoop是Apache旗下的一个分布式开源计算框架。对于这些开源的技术,在网上都有详细的技术文档,可以借助这些技术文档进行学习。国内已有一些知名的互联网公司成功的运用了以上的一些技术,并取得了很好的效果。