分布式并行计算论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Hadoop分布式爬虫设计综述

摘要:由于Internet规模不断扩大,包罗万象的信息资源被连接在一起,形成了一个广阔宏大的信息空间"在这个空间中,存在着海量的信息,如何快速高效和安全地让网络用户在如此浩瀚的信息海洋之中找到并获取自己所需的资源,是当前互联网发展的最大挑战之一。如今,云计算已成为当前的重要趋势之一。本文主要阐述在Hadoop分布式文件系统HDFS以及分布式计算框架MapReduce的基础上开发的分布式搜索引擎的爬虫设计相关技术、原理、流程图。

关键词:云计算分布式爬虫Hadoop 搜索引擎

1 引言

随着搜索引擎的发展,搜索引擎所采用的技术也随之变得丰富和多样化,能够适应不同搜索用户以及不同搜索目的的需要。目前,搜索引擎的性能指标主要有三个:首先考虑的是规模的大小,只有规模达到一定的数量级,用户搜索结果的符合度才能够达到满足不同用户的需求程度;其次是性能,搜索引擎的网络蜘蛛必须在一个较短的时间内完成对目标网络的信息搜索,同时,能够在用户可容忍的时间段内,完成搜索结果的反馈;最后是搜索的质量,能够去掉信息重复的网页,对一些无用信息进行过滤,能够准确返回用户想要的结果。

如何从庞大的资料库中找到正确的资料,被公认为是下一代搜索技术的竞争要点"要对海量的信息进行检索,单单依靠单台计算机的处理能力远远不够,即使硬件的发展速度很快,但是根本赶不上信息的增长速度。而若采用集群计算机实现,虽然可以解决处理速度问题,但由于从网络的整体上看,该集群仍是一个结点,会严重受制于网络带宽,因此,需要采用多台计算机进行分布式协同处理"。

分布式搜索引擎是通过网络把大范围的分布、异构数据集联合起来,形成一个逻辑整体,为用户提供分布式的信息检索服务。同传统搜索引擎相比,分布式搜索引擎有以下优点:

1)各检索服务器之间协同工作,每个服务器只搜索自身自治区域内的信息资源,彼此之间只传递搜索结果信息,加快了检索速度,减轻网络及各站点的负担;

2)与网络资源本身的分布式特性相适应,增加搜索服务器方便,有良好的可扩展性;

3)索引信息化分到各个数据库中,使得各索引数据库规模小,易于管理,缩短查询响应时间。

当今,大型网站的用户多,参与度广。因此,如何有效地为如此巨大的用户群

体服务,让他们参与时能够享受方便、快捷的服务,成为这些网站不得不解决的一个问题。而与此同时,凭借Google文件系统搭建起来Google服务器群,为Google 提供强大的搜索速度与处理能力。于是,如何有效利用这些这种技术,为更多的企业或个人提供强大的计算能力与多种多样的服务,就是像Google这样拥有巨大服务器资源的企业在考虑的问题。

正是因为一方对计算能力的需求,而另一方能够提供这样的计算能力,云计算就应运而生。wikipedia关于云计算的定义为云计算是网格计算下的一种新的标签,它使用公用计算或其它方法来共享计算资源。云计算是依靠本机服务器或个人设备来处理用户应用程序之外的另一种选择。目前,包括Google、微软、IBM、Amazon、EMC和惠普在内的许多IT业巨头都宣布要在云计算上进行重点研究,也有了一些供企业使用的云计算案例。

目前,最著名的云计算基础设施是由Google提出来的。Google使用的云计算基础设施模式[1]包括四个相互独立又紧密结合在一起的系统,其包括Google建立在集群之上的文件系统GFs(GooogleFilesystem)[2],针对Google应用程序的特点提出的MapReduce[3]编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable[4]。

本文就是在Hadoop云计算平台的基础上完成的,阐述了在Hadoop分布式平台的基础上搭建分布式爬虫的相关研究。

2 分布式爬虫技术背景

2.1 云计算

云计算是一种全新的网络服务方式,其将传统的以桌面为核心的任务处理转变为以网络为核心的任务处理,它利用网络实现自己想要完成的一切处理任务,使网络成为传递服务、计算力和信息的综合连接,真正实现按需计算、多人协作。其基本原理为:利用非本地或远程服务器(集群)的分布式计算机,为互联网用户提供服务(计算、存储、软硬件等服务),这使得用户可以将资源切换到需要的应用上,根据需求访问计算机和存储系统,从而降低成本。云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效。

通常,云计算(Cloudcomputing)是分布式处理(Distributed Computing)、并行处理(Parallel ComPuting)和网格计算(Gridcomputing)的改进处理,其前身是利用并行计算解决大型问题的网格计算和将计算资源作为可计量的服务而提供的公用计算。

2.2 Hadoop 分布式平台结构

Hadoop是大名鼎鼎的Lucene旗下的子项目,它原先是Nutch项目的组成部分,于2006年初从Nutch中分离出来成为一个独立的项目。Hadoop其实并非一个单纯用于存储的分布式文件系统,而是一个被设计用来在由普通硬件设备组成的大型集群上执行分布式应用的框架(framework)。

与前面提到的Google框架类似,Hadoop分布式平台结构包括两部分:

(l)分布式文件系统HDFS(Hadoop Distributed File System):用来在各个计算节点上存储数据,并提供了对数据读写的高吞吐率和容错性;

(2)类似于Google的Map/Reduce计算框架,它能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。可见,Map/Reduce 是一种简化的分布式编程模式,以让程序可以自动在普通机器组成的集群中以并行方式分布执行。

因此,Hadoop的目标是为开发分布式应用提供一个框架,而不是像OpenAFS,Coda那样为存储提供一个分布式文件系统。搜索引擎就是一种典型的分布式程序,Nuteh就是基于Hadoop开发的。基于Hadoop的分布式计算框架如下:

图2.1 Hadoop云技术结构

即,用户首先利用分布式文件系统HDFS将不同节点上的计算机祸合起来,给用户和应用程序提供一个共同的接口和界面,然后可利MapReduce计算框架,进行分布式计算,将一个任务“分解和结果汇总”,以在多台节点上运行,从而实现分布式编程。可见,Hadoop提供了一个分布式计算框架,就如同Java程序员可以不用考虑内存泄漏一样,Map/Reduce API也让程序员不需要关心海量数据如何被分配到多台机器上,不需要考虑机器失效的处理,不需要考虑各节点间如何协同操作共

相关文档
最新文档