论文部分内容阅读
摘 要:Hadoop平台,是一种具备扩展性,可靠性,高效性,低成本的软件框架,是一种分布式处理的软件平台,可以处理与运行海量数据。现今,互联网的信息已经融入了人们的生活与学习中,传统的集中式搜索引擎,已经不能适应现今网络的发展,开发出一种可以快速处理信息,准确获取资源的搜索引擎,是现今网络研究的热点。本文从Hadoop 平台概述、基于Hadoop 的分布式搜索引擎的原理及优势、搜索引擎系统的设计、实现,对分布式搜素引擎进行一定的探讨,期望可以为网络系统的长远发展提供借鉴。
关键词:Hadoop平台;分布式搜索引擎;系统实现
现今,互联网的信息已经融入了人们的生活与学习中,人们越来越重视信息获取的能力。传统的集中式搜索引擎,存在覆盖范围窄,更新时间长,返回结果多,存在查询歧义等问题,已经不能适应现今网络的发展,开发出一种可以快速处理信息,准确获取资源的搜索引擎,是现今网络研究的热点[1]。因此,分布式搜索引擎应运而生。该搜索引擎具备分布式处理信息的作用,可以对系统规模进行扩展,进而提高系统处理信息的能力。本文从几方面,对在Hadoop平台下,分布式搜素引擎进行一定的探讨,期望可以为网络系统的长远发展提供借鉴。
一、Hadoop 平台概述
Hadoop平台,是一种具备扩展性、可靠性、高效性、低成本的软件框架,是分布式处理的软件平台,常被用来处理与运行海量数据。Hadoop的扩展性,体现在可以处理PB 级数据;Hadoop的可靠性,体现在可以保护多个工作数据副本,可以对失败的节点进行重新分布操作。Hadoop的高效性,体现在经由并行处理的模式,可以显著提高处理速度。Hadoop的低成本,体现在它的服务器较为低端,甚至普通的PC机就能作为集群的一员,实现的成本可以得到有效控制[2]。现今,伴随多个版本的进展,Hadoop已经发展成为搜索引擎中的理想平台。分布式文件系统(HDFS)、分布式计算 MapReduce,是Hadoop平台的两大核心。除了核心内容外,还包括Hbase;Hvie;Chukwa;Avro;Common诸多子项目。子项目之间,可以进行服务的互助操作,或者是依据核心層,为更高级别提供服务[3]。
二、基于Hadoop 的分布式搜索引擎的原理及优势
1.分布式搜索引擎的原理
分布式搜索引擎,其依据的标准为地域、IP 地址、主题等,将全网分为多个区域,进而形成网络区域的自行管理。任何自治区,都是通过检索服务器完成相应的工作。具体讲,一个基本的分布式搜索引擎包括分布式信息采集器、分布式索引器以及分布式检索器三部分。分布式信息采集器,可以在运行过程中要求多台机器实行具体的分工合作。为了提高信息的更新速度、信息发现的效率,多台机器都应在各自的区域内,进行相应信息的搜索,同时建立索引,并储存在索引数据库中[4]。分布式索引器,可以在不同的机器上同时进行执行操作,降低索引对于机器的特殊要求,进而实现检索服务器之间的信息交流。分布式检索器,可以为用户提供查询接口。分布式检索器在实际应用中,还具有一个特殊优势,具体讲就是当用户的查询要求增多时,分布式检索器可以实现调配查询请求,可以将查询信息在其余检索服务器上进行查询。实现诸多检索服务器中,文档的同时检索功能,进而提高检索的性能与速度。
2.分布式搜索引擎优势
分布式搜索引擎,与传统的集中式搜索引擎进行比较,具有显著的优势。首先,各个检索服务器都是独立的,当有检索服务器出现故障的问题,并不会影响其它检索服务器的工作。其次,在每台服务器存储中,其索引数据库数据较少,在进行查询时可以降低查询反应时间,大大提高了管理的方便性。第三,分布式搜索引擎具备较好的可扩展性,同网络资源的分布式特点相符合,便于新机器的添加,同时也提高了维护的便捷性。第四,经由检索服务器之间的合作,各个服务器仅在自身区域中,进行信息资源的检索操作,最终只提供搜索结果信息的传递。因此,分布式搜索引擎可以显著的降低各个服务器的压力,缓解网络拥堵,提高检索速度[5]。
三、搜索引擎系统的设计与实现
1.基于Hadoop的搜索引擎系统总体设计
整个搜索引擎系统,是基于Hadoop 集群框架之上。分别由三个子系统进行搜索引擎的设计与实现[6]。具体的系统功能如图1所示。
基于 Hadoop 的搜索引擎包括分布式爬行子系统、分布式索引子系统以及分布式检索子系统三个部分,每个系统都可采取MapReduce 的并行模式加以实现,各自可以独立工作,经由接口实现分布式搜索的目的。
爬行子系统,对网页的采集过程,都是经由Http 协议进行的,包括6大模块,分别为数据库更新;解析;抓取;抓取列表生成;URL集注入;URL集生成。
索引子系统,主要的目的就是对抓取的网页,建立索引同时进行有效解析。主要包括5个模块,分别为索引存储;索引生成;内容评分排序;中文分词处理;非结构化文档解析。
检索子系统,主要用于形成前台搜索界面,对于用户的查询请求进行有效接收,同时进行处理,实现内容查询功能。最后将查询的结果,返回到用户界面。总体包括2 个模块,分别为前台用户界面、后台数据处理。系统总体架构图,具体如图2所示。
2.搜索引擎系统的实现
首先,爬行子系统在因特网上进行文件的下载,通过解析、去重抓取的网页,并将页面数据、提取的链接,分别保存在URL 信息库 CrawlDb 与互联关系库 LinkDb中。同时,通知索引子系统,进行相应的索引。其次,索引子系统,可以对爬行子系统取得的网页数据,进行网页评分;分词处理;文档解析;倒排索引处理。同时运用倒排索引库,进行等待检索操作。最后,用户经由前台界面,进行检索请求,检索子系统运用分词处理模块,进行输入字符串的分析,并运用倒排索引库中进行检索,把结果进行排序后回馈给客户[7]。整个搜索程序,包括4 个数据库。分别为Index数据库;Segments 数据库;LinkDb 数据库;CrawlDb 数据库。
四、结语
现今,分布式搜索引擎,其技术性较强,可以包括查询结果优化;分布式计算;中文分词;全文检索等功能。面对这一新兴领域,基于Map/Reduce 的编程模型,其在分布式计算方面的潜力不可估量,我们应进行积极的研究,进而为Hadoop分布式计算平台的发展,提供更为广阔的发展空间。任何技术与平台,在使用的过程中都会存在一定的缺陷,Hadoop 平台中在调度算法与任务分割方面,也存在一定程度的问题。诸如会出现部分Slave 节点满载,而部分节点空闲的状况。在未来的发展之中,我们应引进智能的动态均衡机制,有效利用节点计算功能,在网页评分策略、中文分词方面进行有效的改革,进而建构出搜索准确率高、性能更好的分布式搜索引擎[8]。
参考文献:
[1]胡 彧,封俊.Hadoop下的分布式搜索引擎[J].计算机系统应用,2010,19(7):224-228.
[2]封俊.基于Hadoop的分布式搜索引擎研究与实现[D].太原理工大学硕士学位论文,2010.
[3]解耀伟.基于Hadoop的分布式垂直搜索引擎研究与设计[D].河北工业大学硕士学位论文,2012.
[4]叶海. 分布式主题搜索引擎的研究与实现[D].华南理工大学,2011.
[5]陆嘉恒. Hadoop实战[M]. 北京: 机械工业出版社出版社, 2011
[6]范晨熙.基于Hadoop的搜索引擎的研究与应用[D].浙江理工大学硕士专业学位论文,2013.
[7]钱建学.一种基于Hadoop的分布式网络爬虫的研宄与设计[D].北京:北京邮电大学,2014
[8]谢超. 大数据下的数据分析平台架构[J]. 程序员, 2011, (8): 3-5
关键词:Hadoop平台;分布式搜索引擎;系统实现
现今,互联网的信息已经融入了人们的生活与学习中,人们越来越重视信息获取的能力。传统的集中式搜索引擎,存在覆盖范围窄,更新时间长,返回结果多,存在查询歧义等问题,已经不能适应现今网络的发展,开发出一种可以快速处理信息,准确获取资源的搜索引擎,是现今网络研究的热点[1]。因此,分布式搜索引擎应运而生。该搜索引擎具备分布式处理信息的作用,可以对系统规模进行扩展,进而提高系统处理信息的能力。本文从几方面,对在Hadoop平台下,分布式搜素引擎进行一定的探讨,期望可以为网络系统的长远发展提供借鉴。
一、Hadoop 平台概述
Hadoop平台,是一种具备扩展性、可靠性、高效性、低成本的软件框架,是分布式处理的软件平台,常被用来处理与运行海量数据。Hadoop的扩展性,体现在可以处理PB 级数据;Hadoop的可靠性,体现在可以保护多个工作数据副本,可以对失败的节点进行重新分布操作。Hadoop的高效性,体现在经由并行处理的模式,可以显著提高处理速度。Hadoop的低成本,体现在它的服务器较为低端,甚至普通的PC机就能作为集群的一员,实现的成本可以得到有效控制[2]。现今,伴随多个版本的进展,Hadoop已经发展成为搜索引擎中的理想平台。分布式文件系统(HDFS)、分布式计算 MapReduce,是Hadoop平台的两大核心。除了核心内容外,还包括Hbase;Hvie;Chukwa;Avro;Common诸多子项目。子项目之间,可以进行服务的互助操作,或者是依据核心層,为更高级别提供服务[3]。
二、基于Hadoop 的分布式搜索引擎的原理及优势
1.分布式搜索引擎的原理
分布式搜索引擎,其依据的标准为地域、IP 地址、主题等,将全网分为多个区域,进而形成网络区域的自行管理。任何自治区,都是通过检索服务器完成相应的工作。具体讲,一个基本的分布式搜索引擎包括分布式信息采集器、分布式索引器以及分布式检索器三部分。分布式信息采集器,可以在运行过程中要求多台机器实行具体的分工合作。为了提高信息的更新速度、信息发现的效率,多台机器都应在各自的区域内,进行相应信息的搜索,同时建立索引,并储存在索引数据库中[4]。分布式索引器,可以在不同的机器上同时进行执行操作,降低索引对于机器的特殊要求,进而实现检索服务器之间的信息交流。分布式检索器,可以为用户提供查询接口。分布式检索器在实际应用中,还具有一个特殊优势,具体讲就是当用户的查询要求增多时,分布式检索器可以实现调配查询请求,可以将查询信息在其余检索服务器上进行查询。实现诸多检索服务器中,文档的同时检索功能,进而提高检索的性能与速度。
2.分布式搜索引擎优势
分布式搜索引擎,与传统的集中式搜索引擎进行比较,具有显著的优势。首先,各个检索服务器都是独立的,当有检索服务器出现故障的问题,并不会影响其它检索服务器的工作。其次,在每台服务器存储中,其索引数据库数据较少,在进行查询时可以降低查询反应时间,大大提高了管理的方便性。第三,分布式搜索引擎具备较好的可扩展性,同网络资源的分布式特点相符合,便于新机器的添加,同时也提高了维护的便捷性。第四,经由检索服务器之间的合作,各个服务器仅在自身区域中,进行信息资源的检索操作,最终只提供搜索结果信息的传递。因此,分布式搜索引擎可以显著的降低各个服务器的压力,缓解网络拥堵,提高检索速度[5]。
三、搜索引擎系统的设计与实现
1.基于Hadoop的搜索引擎系统总体设计
整个搜索引擎系统,是基于Hadoop 集群框架之上。分别由三个子系统进行搜索引擎的设计与实现[6]。具体的系统功能如图1所示。
基于 Hadoop 的搜索引擎包括分布式爬行子系统、分布式索引子系统以及分布式检索子系统三个部分,每个系统都可采取MapReduce 的并行模式加以实现,各自可以独立工作,经由接口实现分布式搜索的目的。
爬行子系统,对网页的采集过程,都是经由Http 协议进行的,包括6大模块,分别为数据库更新;解析;抓取;抓取列表生成;URL集注入;URL集生成。
索引子系统,主要的目的就是对抓取的网页,建立索引同时进行有效解析。主要包括5个模块,分别为索引存储;索引生成;内容评分排序;中文分词处理;非结构化文档解析。
检索子系统,主要用于形成前台搜索界面,对于用户的查询请求进行有效接收,同时进行处理,实现内容查询功能。最后将查询的结果,返回到用户界面。总体包括2 个模块,分别为前台用户界面、后台数据处理。系统总体架构图,具体如图2所示。
2.搜索引擎系统的实现
首先,爬行子系统在因特网上进行文件的下载,通过解析、去重抓取的网页,并将页面数据、提取的链接,分别保存在URL 信息库 CrawlDb 与互联关系库 LinkDb中。同时,通知索引子系统,进行相应的索引。其次,索引子系统,可以对爬行子系统取得的网页数据,进行网页评分;分词处理;文档解析;倒排索引处理。同时运用倒排索引库,进行等待检索操作。最后,用户经由前台界面,进行检索请求,检索子系统运用分词处理模块,进行输入字符串的分析,并运用倒排索引库中进行检索,把结果进行排序后回馈给客户[7]。整个搜索程序,包括4 个数据库。分别为Index数据库;Segments 数据库;LinkDb 数据库;CrawlDb 数据库。
四、结语
现今,分布式搜索引擎,其技术性较强,可以包括查询结果优化;分布式计算;中文分词;全文检索等功能。面对这一新兴领域,基于Map/Reduce 的编程模型,其在分布式计算方面的潜力不可估量,我们应进行积极的研究,进而为Hadoop分布式计算平台的发展,提供更为广阔的发展空间。任何技术与平台,在使用的过程中都会存在一定的缺陷,Hadoop 平台中在调度算法与任务分割方面,也存在一定程度的问题。诸如会出现部分Slave 节点满载,而部分节点空闲的状况。在未来的发展之中,我们应引进智能的动态均衡机制,有效利用节点计算功能,在网页评分策略、中文分词方面进行有效的改革,进而建构出搜索准确率高、性能更好的分布式搜索引擎[8]。
参考文献:
[1]胡 彧,封俊.Hadoop下的分布式搜索引擎[J].计算机系统应用,2010,19(7):224-228.
[2]封俊.基于Hadoop的分布式搜索引擎研究与实现[D].太原理工大学硕士学位论文,2010.
[3]解耀伟.基于Hadoop的分布式垂直搜索引擎研究与设计[D].河北工业大学硕士学位论文,2012.
[4]叶海. 分布式主题搜索引擎的研究与实现[D].华南理工大学,2011.
[5]陆嘉恒. Hadoop实战[M]. 北京: 机械工业出版社出版社, 2011
[6]范晨熙.基于Hadoop的搜索引擎的研究与应用[D].浙江理工大学硕士专业学位论文,2013.
[7]钱建学.一种基于Hadoop的分布式网络爬虫的研宄与设计[D].北京:北京邮电大学,2014
[8]谢超. 大数据下的数据分析平台架构[J]. 程序员, 2011, (8): 3-5