论文部分内容阅读
随着大数据、人工智能时代的到来,互联网上的网络信息日新月异,呈现爆炸式增长态势。传统单机网络爬虫已然无法满足要快速、高效、可靠地获取互联网上不断快速增长的海量网络信息资源的需求。近些年,随着Hadoop、Spark等大数据分布式技术的不断发展,这些技术为海量网络信息资源的存储和计算提供了可能。这里,本文设计和实现了一个基于Hadoop的分布式网络爬虫系统,旨在解决传统单机网络爬虫、一般分布式网络爬虫存在的不能适用于海量网页数据的应用场景、抓取网页速度慢、主节点单点故障等问题,使网络爬虫能够很好地适用于海量网页数据的应用场景,有效提高网络爬虫的网页抓取速度。本文主要工作内容如下:(1)研究了传统单机网络爬虫、Hadoop相关组件的基本原理和工作流程,重点对网络爬虫中的URL去重算法和网页去重算法进行了深入的研究。针对基于Bloom Filter的URL去重算法和基于Sim Hash的网页去重算法这两种单机去重算法存在的问题,结合Hadoop分布式编程技术,本文设计和实现了一种基于Sim Hash的分布式URL去重算法,该算法是基于网页内容和URL链接进行URL去重的,很好地提高了URL去重率,加快了爬虫系统抓取网页的速度,适用于海量网页数据去重的应用场景。(2)对基于Hadoop的分布式网络爬虫系统进行了详细的设计与实现,具体包括系统的需求分析、架构设计、工作流程设计、功能结构设计、分布式存储设计,以及利用HDFS、Map Reduce分布式编程技术实现系统的各个功能模块等。(3)在本地搭建了基于Hadoop HA高可用分布式集群测试环境,根据本文给定的测试方案分别对系统的功能、性能、可扩展性、高可用性、URL去重算法这5个方面进行了测试。通过对测试结果分析可以得到:本文设计的分布式网络爬虫系统满足了系统各模块功能、可扩展性、高可用性、URL去重的需求,同时该系统具有较高的爬虫效率和URL去重率,满足了系统的性能需求,适用于海量网页信息资源获取的应用场景。