第1章 绪论
随着计算机技术、通信网、互联网的迅速发展和日益普及,Internet上的信息量快速增长。从海量的信息块中快速检索出用户真正需要的信息正变得很困难,信息搜索应向着具有分布式处理能力方向发展,本系统利用hadoop分布式开源框架良好的扩充能力、较低的运作成本、较高的效率和稳定性来满足需求。
现状:
缺陷和不足:
(1)结果主题相关度不高。
(2)搜素速度慢。
引入hadoop+nutch+solr的优点:
(1)hadoop平台数据处理高效。hadoop集处理数据比起单机节省数倍的时间,数据量越大优势越明显,满足信息采集对数据处理的速度和质量要求。
(1)hadoop平台数据处理高效。hadoop集处理数据比起单机节省数倍的时间,数据量越大优势越明显,满足信息采集对数据处理的速度和质量要求。
(2)hadoop平台具有高扩展性.可以适当扩展集数量来满足日益不断增加的数据量,而这并不会毁坏原集的特性。
(3)安全可靠性高。集的数据冗余机制使得hadoop能从单点失效中恢复,即Hadoop能自动进行数据的多次备份,以确保数据不丢失,即使当某个服务器发生故障时,它也能重新部署计算任务。
(4) Nutch不仅提供抓取网页的功能,还提供了解析网页、建立链接数据库、对网页进行评分、建立solr索引等丰富的功能。
(5)通过Nutch插件机制实现了系统的可扩展性、灵活性和可维护性,提高了开发效率。能够根据用户需求进行灵活定制抓取和解析,提高了系统使用性。
(6)通过solr集,采用分布式索引在不同的机器上并行执行,实现检索服务器之间的信息交换.可以通过设定主题进行索引检索。
研究目标和内容
本文的研究目标是全面深入分析研究分布式搜索引擎,进而优化分布式搜索引擎中的索引构建策略,内容包括:
(1)深入研究hadoop分布式平台,仔细剖析hadoop中的分布式文件系统HDFS和map/Reduce编程模型。
(2)深入研究Nutch架构 、相关技术与体系结构,着重研究分析Nutch插件系统的内部结构和流程;对protocol-httpclient插件进行开发支持表单登录;对 url过滤、信息解析插件进行开发,提高搜索的主题相关度;(实现用mapreduce的google的排序算法,改进系统搜索的关联度)。
系统功能结构
(1)本地资源解析模块
对本地文本pdf,word,excel内容解析和索引,按照主题分类,添加到相应的主题中进行搜素.
(2)搜索模块
用户根据不同主题进行内容索引、关键词查询,将跟查询关联度最高的前n个文档返回给用户,并统计出在这些查询结果中出现频率最高的前n个词。用户可根据需求修改配置文件,提高搜索的相关度.
(3)信息爬取模块
① 信息定制采集模块
1、种子URL:用作抓取器爬取的出发点,也叫做根URL。
2、关键字:关键字的选择很重要,描述了抓取任务的所属分类的主题方向。
3、深度:由于Nutch抓取模块采用的是广度优先的策略,抓取深度的选择决定了抓取时间的长度和抓取网页数量的大小.一般根据所选取的种子URL的类型和详细程度以及对网页抓取规模的需求来进行设置。
在信息定制模块用户设置主题信息,url信息、抓取深度的信息,抓取线程根据定制信息,开始抓取工作。(综合型搜索引擎;某一主题类网站,垂直搜索引擎;博客搜索引擎)
② 信息解析过滤模块
根据fiddle进行登录分析,修改网络协议插件,支持简单的一次跳转表单登录,用户可以在配置文件中进行设置,然后抓取内容;复杂的登陆需要分析登陆过程,写出相对应的网络协议插件。由于本系统在网络资源采集过程中支持个性化定制,只对目标站点感兴趣的内容进行采集,分析目标站点的结构特点,在页面采集完成后,从中提取出链接、元数据、正文、标题、关键字、描述等信息,进行后续的过滤和其他处理.链接的提取首先要判断页面类型,页面的类型可以有应答头分析得出,根据不同的类型选择相应的爬取和解析插件,对遇到带有链接的标记如<a〉、<href>、〈frame〉等,就从标记结构的属性中出 目标url,并从成对的该标记之间抽取出正文作为该链接的说明文字,链接文字一般能反映文章的主题信息,系统设定阈值,判断主题和说明性文字的相关性,对爬取链接进行过滤,加入到爬取链接列表中。定制采集的子模块,根据正则表达式对网页内容进行过滤,获取和处理跟主题相关的内容,过滤无关的信息内容;对网页编码格式进行提取,实现内容编码的转换。(下一步改进主题相关度链接过滤算法)
(4)系统管理模块
用户对根据需求对系统的配置参数进行修改.
论文组织结构
1、绪论。
本章首先介绍了本文研究的背景及意义,接着研究了信息采集与搜索技术的国内外发展现状,最后给出了本文研究的内容和论文组织结构。
2、关键技术.Hadoop、Nutch、Solr技术架构及文本检索算法
本章介绍了开源软件Hadoop、Nutch、Solr的基本情况;详细介绍了Hadoop框架及其进行分布式计算的编程模型MapReduce和数据存储系统HDFS;Nutch以Hadoop的分布式文件系统HDFS作为底层数据平台,采用MapReduce编程方式实现数据的分布式处理,以扩展机制为突出特性,用户可以根据实际需求对其添加插件进行扩展改进,构建自己的信息采集搜索系统;通过Solr集,采用分布式索引在不同的机器上并行执行,实现检索服务器之间的信息交换,减小索引对机器的要求,同时介绍了常用的文本检索算法VSM ,pagerank和lucene默认的排序算法。
3、系统环境配置.Hadoop+Nutch+Solr系统的运行环境配置与运行.
本章介绍配置Hadoop+Nutch+solr系统的运行环境并详细阐述其运行流程.
4、基于Hadoop+Nutch+Solr的信息采集搜索系统的设计与实现。
本课题采用hadoop+Nutch+Solr开源软件,缩短了开发时间并且能够根据个性化需要采集数据提高搜素结果的精度,基于mapreduce实现了pagerank算法,将pagerank作为一个独立的索引项添加到nutch默认的lucene排序算法中,用户可以根据需求自己定义排序的规则,提高检索的相关度.(基于hadoop的nutch网页排序算法研究与实现)
系统相关技术介绍
Hadoop
hadoop由 Apache公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入.Hadoop被定位为一个易于使用的平台,以HDFS、MapReduce为基础,能够运行上千台PCServer组成的系统集,并以一种可靠、容错的方式分布式处理请求。本文基于Hadoop+Nutch+Solr开发的信息采集搜索项目,现对Hadoop进行全面分析和深入研究.
Hadoop框架介绍
Hadoop是执行大数据分布式应用的开源框架,凭借高效,可靠,可扩展等特性受到广泛应用,它有两大最核心的模块:进行分布式计算的MapReduce与底层的存储系统HDFS(Hadoop Distributed FileSystem分布式文件系统)。
MapReduce中任务的分解(Map)与结果的汇总(Reduce)是其主要思想。Map就是将一个任务分解成多个任务,Reduce就是将分解后多任务分别处理,并将结果汇总为最终结果。
Hadoop整体由九个子项目组成,其中MapReduce和HDFS两大核心将在后文展开具体介绍。框架如下图所示,项目功能如下表所示.
图 Hadoop框架图
子项目 | 功能 |
Hadoop Common | Hadoop系统核心,提供子项目的基本支持 |
HDFS | 实现高吞吐的分布式存储 |
MapReduce | 执行分布式并行计算 |
HBase | spider软件一个可扩展的分布式数据库系统 |
Pig | 为并行计算提供数据流语言和执行框架 |
Hive | 提供类SQL语法进行数据查询的数据仓库 |
ZooKeeper | 提供分布式锁等 |
Mahout | 一个大规模机器学习和数据挖掘库 |
Arvo | Hadoop的RPC(远程过程调用)方案 |
表Hadoop子项目功能介绍
MapReduce编程模型
MapReduce是一种编程模型,该模型将数据扩展到多个数据节点上进行处理,它最早是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.并行编程模式的最大优点是容易扩展到多个计算节点上处理数据。开发者可以很容易就编写出分布式并行程序。
mapreduce的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式;一个MapReduce作业(job)首先会把输入的数据集分割为多个独立的数据块,再以键值对形式输给Map函数并行处理。Map函数接受一个输入键值对的值,产生一个中间键值对集合,由MapReduce保存并集合所有具有相同中间key值的中间value值传递给Reduce函数, reduce对这些value值进行合并,形成一个value值集合,最终形成输出数据。 处理流程如下图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论