基于Hadoop的分布式数据检索研究

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

基于Hadoop的分布式数据检索研究

作者:王景云

来源:《电子技术与软件工程》2015年第21期

摘要大数据背景下,信息数据搜索已经成为日常工作、生活中重要行为之一。在网络技术、计算机技术的快速迭代下,数据检索也在不断发生变革,其中分布式数据检索由于其本身的特征及优势愈来愈受到关注。本文从Hadoop入手,对基于Hadoop的分布式数据检索进行了探讨,提出了相关观点,供以参考。

【关键词】Hadoop 分布式搜索引擎

正常情况下,分布式检索可将异构数据进行有效整合,将这些数据转变为一个逻辑整体,这对于用户信息检索而言将带来巨大的便利。在实际分布式检索过程中,用户首先会借助客户端进行相关信息查询,然后分发服务器会对用户的查询指令进行处理,经过服务器分析后进行集合性筛选,获取最优的数据集合来完成检索工作。此时相关查询请求将置于检索服务器上,最后将整合后的查询结果将被反馈于用户,即完成了一次完整的分布式检索过程。具体如图1所示。

相对于传统信息检索方法而言,分布式检索可对大容量数据进行检索,突破了计算机数据容量限制的瓶颈,并大幅度提升了数据信息检索的速度与效率。在传统数据信息检索过程中可能会受到机器本身的影响,从而降低数据服务水平,然而分布式数据信息检索却克服了这一缺点,使得数据服务更为稳定。

1 Haddoop技术概述

从特征性来看Hadoop架构与分布式数据检索具有一定的契合性,因此以Hadoop技术为基础来进行分布式数据搜索引擎构建可充分发挥分布式检索的作用。Hadoop具有高度容错性,可在低廉硬件上进行部署。同时Hadoop具备了高吞吐量,因此在大数据集应用程序访问过程中可保持较好的稳定性,换句话说利用Hadoop可降低POSIX的限制,并以流形式对文件系统数据进行访问。在Hadoop中HDFS及MapReduce是最为核心的两部分构件,前者可对相关数据进行有效存储,后者则保证了大量数据计算的稳定性。基于上述核心构件的作用可将Hadoop视作为一个平台,并且Hadoop本身具备了良好的扩展性,可发挥软件框架的作用。

2 基于Hadoop的分布式数据搜索引擎构建分析

从大环境来看,在日常数据检索过程中,大多数用户都是借助于搜索引擎来完成数据检索,换句话说搜索引擎已经成为了数据检索最为有效的途径之一,下文便对基于Hadoop的分布式数据搜索引擎构建展开探讨,并以此为切入对分布式数据检索分析。

搜索引擎主要由3个部分构成即分布式爬行子系统、索引子系统以及检索子系统,具体如图2所示。

单从子系统来看,它们彼此之间是相互独立存在的,但可借助接口进行相互连接,因此三个子系统又可保持密切的联系。所有子系统均采取MapReduce并行方式运行。其中爬行子系统主要功能是对网页进行采集,当然这个过程中需要借助Http协议实现。索引子系统会对网页进行细致化解析,并结合解析结果构建索引。检索子系统为用户提供了查询及搜索平台,当检索子系统收到用户请求时会对请求信息进行处理,同时会向用户反馈查询结果。

2.1 分布式爬行子系统

通常情况下会将分布式爬行子系统入口归纳为Crawler 类,在分布式爬行子系统初始运行时,日志中会及时记录爬行时间,然后便开始对URL筛选模块、URL分割模块及解析模块等子模块按顺序进行调用,达成爬行任务目标。其具体流程如下:筛选URL(URL筛选模块、URL分割模块)→获取网页(分布式网页获取模块)→网页解析(分布式网页解析模块)→规范链接(链接过滤模块)→存储数据(分布式数据储存模块)。在上述过程中需要注意的是Hadoop对数据处理的方式具有一定的特殊性,在MapReduce并行处理的前提下数据是以的数据对方式存在,如果应用JAVA语言汇编时则无法将此类对象作为key,因此需要借助相关包装方法来弥补这一缺陷,从而实现compareTo()方法。

2.2 分布式索引子系统

分布式索引子系统具体运行流程具体如下:转换文本格式(文档统一处理模块)→索引分词(中文分词模块)→网页评分(评分模块)→索引(索引生成模块)。在该流程中首先需要对信息格式进行统一化,通过应用通用DocumentHandler 接口及插件保证各类文档如PDF、TXT等均能读取。在信息读取后经由分词模块对信息进行精细化处理,从而保证索引的效率与精确度,通过利用ItelChineseAnalyzer来达到分词目的。评分模块主要是对用户搜索行为进行分析,并以TF-IDF或PageRank策略来分析用户索引习惯,从而对检索匹配网页进行排序,方便于用户快速获取所需网页内容。索引生成模块则是分布式索引子系统的核心组成,在该模块的作用下借助IndexGenerator 类得到索引字段或构建文档对象,以便用户经由查询模块对索引信息进行搜索。

2.3 分布式查询子系统

分布式查询子系统主要包括前台查询界面、查询器两个模块。该子系统的稳定性直接关系到用户的体验性与使用满意程度。本研究中以JSP来构建查询前台,先利用search.html 页面对用户查询信息进行采集,然后对其进行包装并提交。然后search.jsp会对字符串进行提取,并且SearchBean会以这些字符串作为对象进行相关查询。最后将查询结果进行整合,并以列表方式反馈于用户。查询器则可对Lucene中的类代用,借助MapReduce方式完成查询任务。

3 结语

Hadoop为分布式数据搜索引擎提供了有力的技术基础,在本研究中基于Hadoop的分布式数据搜索引擎主要由分布式爬行子系统、分布式索引子系统以及分布式查询子系统构成,在各子系统以及模块的作用下可保证系统能够稳定运行。此类搜索引擎为分布式计算提供了良好的应用空间,未来将得到更高层次的发展。

参考文献

[1]王俊生,施运梅,张仰森.基于Hadoop的分布式搜索引擎关键技术[J].北京信息科技大学学报(自然科学版),2011(04).

[2]唐世庆,李云龙,田凤明,胡海荣.基于Hadoop的云计算与存储平台研究与实现[J]. 四川兵工学报, 2014(08).

[3]逄利华,张锦春.基于Hadoop的分布式数据库系统[J].办公自动化,2014(05).

作者单位

中铁第四勘察设计院集团有限公司湖北省武汉市 430081

相关文档
最新文档