论文部分内容阅读
随着互联网的高速发展,搜索引擎成为互联网用户查找信息的第一入口,作为搜索引擎核心组件的网络爬虫用于在互联网上采集数据。现在网络信息正以指数级的速度不断膨胀,网页采集的完整性和实时性的难度越来越大,这给爬虫系统带来了巨大的挑战。如何充分地利用计算机的硬件资源和网络带宽高效地采集页面,同时减少由URL判重所带来的大量通信开销,是分布式爬虫系统研究的核心问题。针对这个问题,本文以提高分布式爬虫系统的性能为核心,进行了以下研究:深入研究了分布式系统优缺点、分布式系统的任务调度、网络爬虫工作原理和爬行策略的基础上,结合网络爬虫自身特点、互联网结构特点和站点页面间的相似性,提出了基于在线反馈的站点规模动态预测算法。站点规模动态预测算法首先对站点规模进行分类,然后根据互联网结构的疏密性和爬虫的爬行原理,提出了站点增长比的概念,在爬虫爬行的过程中,在线采集计算增长比的信息,通过计算出的增长比的反馈,对站点规模进行逐步预测,并基于采集的数据进行了算法模型的训练和验证;将基于在线反馈的站点规模动态预测算法融入到分布式爬虫系统中,可根据预测出的站点规模,减少URL判重所带来的大量通信开销。针对站点规模计算出爬行器所承载的任务负荷量,通过监视器定时收集爬行器自身负荷当量,基于以上两点计算爬行器间的负载系数,并以此为依据进行任务调度,以达到负载均衡的效果;结合以上理论基础和研究成果,本文设计并开发了基于站点规模的动态任务分割算法的分布式爬虫系统,该分布式爬虫系统能很好地处理新增爬行器时的负载均衡情况和爬行器出现故障时的任务快速恢复情况,具有很好的动态负载均衡效果、鲁棒性和扩展性。