大数据技术文档

上传人:daj****de2 文档编号:124217035 上传时间:2022-07-24 格式:DOCX 页数:35 大小:336.98KB
收藏 版权申诉 举报 下载
大数据技术文档_第1页
第1页 / 共35页
大数据技术文档_第2页
第2页 / 共35页
大数据技术文档_第3页
第3页 / 共35页
资源描述:

《大数据技术文档》由会员分享,可在线阅读,更多相关《大数据技术文档(35页珍藏版)》请在装配图网上搜索。

1、第1章绪论随着计算机技术、通信网、互联网的迅速发展和日益普及,Internet上的信息量快速增长。从海量的信息块中快速检索出用户真正需要的信息正变得很困难,信息搜索应向着具有分布式处 理能力方向发展,本系统利用hadoop分布式开源框架良好的扩充能力、较低的运作成本、较高的 效率和稳定性来满足需求。现状:缺陷和不足:(1)结果主题相关度不高。(2)搜素速度慢。引入 hadoop+nutch+solr 的优点:(1)hadoop平台数据处理高效。hadoop集群处理数据比起单机节省数倍的时间,数据量越大优 势越明显,满足信息采集对数据处理的速度和质量要求。(2)hadoop平台具有高扩展性。可以

2、适当扩展集群数量来满足日益不断增加的数据量,而这并 不会毁坏原集群的特性。(3)安全可靠性高。集群的数据冗余机制使得hadoop能从单点失效中恢复,即Hadoop能自动进 行数据的多次备份,以确保数据不丢失,即使当某个服务器发生故障时,它也能重新部署计算任 务。(4)Nutch不仅提供抓取网页的功能,还提供了解析网页、建立链接数据库、对网页进行评 分、建立solr索引等丰富的功能。(5)通过Nutch插件机制实现了系统的可扩展性、灵活性和可维护性,提高了开发效率。能够根 据用户需求进行灵活定制抓取和解析,提高了系统使用性。(6)通过solr集群,采用分布式索引在不同的机器上并行执行,实现检索服

3、务器之间的信息交 换。可以通过设定主题进行索引检索。研究目标和内容本文的研究目标是全面深入分析研究分布式搜索引擎,进而优化分布式搜索引擎中的索引构建策 略,内容包括:(1)深入研究hadoop分布式平台,仔细剖析hadoop中的分布式文件系统HDFS和map/Reduce编 程模型。(2)深入研究Nutch架构、相关技术与体系结构,着重研究分析Nutch插件系统的内部结构和 流程;对protocol-httpclient插件进行开发支持表单登录;对url过滤、信息解析插件进行开 发,提高搜索的主题相关度;(实现用mapreduce的google的排序算法,改进系统搜索的关联 度)。系统功能结构

4、(1)本地资源解析模块对本地文本pdf,word,excel内容解析和索引,按照主题分类,添加到相应的主题中进行搜素。(2)搜索模块用户根据不同主题进行内容索引、关键词查询,将跟查询关联度最高的前n个文档返回给用户, 并统计出在这些查询结果中出现频率最高的前n个词。用户可根据需求修改配置文件,提高搜索 的相关度。(3)信息爬取模块信息定制采集模块1、种子URL :用作抓取器爬取的出发点,也叫做根URL。2、关键字:关键字的选择很重要,描述了抓取任务的所属分类的主题方向。3、深度:由于Nutch抓取模块采用的是广度优先的策略,抓取深度的选择决定了抓取时间的长度 和抓取网页数量的大小。一般根据所选

5、取的种子URL的类型和详细程度以及对网页抓取规模的需 求来进行设置。在信息定制模块用户设置主题信息,url信息、抓取深度的信息,抓取线程根据定制信息,开 始抓取工作。(综合型搜索引擎;某一主题类网站,垂直搜索引擎;博客搜索引擎)信息解析过滤模块根据fiddle进行登录分析,修改网络协议插件,支持简单的一次跳转表单登录,用户可以在配置 文件中进行设置,然后抓取内容;复杂的登陆需要分析登陆过程,写出相对应的网络协议插件。 由于本系统在网络资源采集过程中支持个性化定制,只对目标站点感兴趣的内容进行采集,分析 目标站点的结构特点,在页面采集完成后,从中提取出链接、元数据、正文、标题、关键字、描 述等信

6、息,进行后续的过滤和其他处理。链接的提取首先要判断页面类型,页面的类型可以有应 答头分析得出,根据不同的类型选择相应的爬取和解析插件,对遇到带有链接的标记如a、 href、frame等,就从标记结构的属性中找出目标url,并从成对的该标记之间抽取出正文 作为该链接的说明文字,链接文字一般能反映文章的主题信息,系统设定阈值,判断主题和说明 性文字的相关性,对爬取链接进行过滤,加入到爬取链接列表中。定制采集的子模块,根据正则 表达式对网页内容进行过滤,获取和处理跟主题相关的内容,过滤无关的信息内容;对网页编码 格式进行提取,实现内容编码的转换。(下一步改进主题相关度链接过滤算法)(4)系统管理模块

7、用户对根据需求对系统的配置参数进行修改。论文组织结构1、绪论。本章首先介绍了本文研究的背景及意义,接着研究了信息采集与搜索技术的国内外发展现状,最 后给出了本文研究的内容和论文组织结构。2、关键技术。Hadoop、Nutch、Solr技术架构及文本检索算法本章介绍了开源软件Hadoop、Nutch、Solr的基本情况;详细介绍了 Hadoop框架及其进行分布式 计算的编程模型MapReduce和数据存储系统HDFS; Nutch以Hadoop的分布式文件系统HDFS作为 底层数据平台,采用MapReduce编程方式实现数据的分布式处理,以扩展机制为突出特性,用户 可以根据实际需求对其添加插件进

8、行扩展改进,构建自己的信息采集搜索系统;通过Solr集群, 采用分布式索引在不同的机器上并行执行,实现检索服务器之间的信息交换,减小索引对机器的 要求,同时介绍了常用的文本检索算法VSM,pagerank和lucene默认的排序算法。3、系统环境配置。Hadoop+Nutch+Solr系统的运行环境配置与运行。本章介绍配置Hadoop+Nutch+solr系统的运行环境并详细阐述其运行流程。4、基于Hadoop+Nutch+Solr的信息采集搜索系统的设计与实现。本课题采用hadoop+Nutch+Solr开源软件,缩短了开发时间并且能够根据个性化需要采集数据提 高搜素结果的精度,基于mapr

9、educe实现了 pagerank算法,将pagerank作为一独立的索引项添 加到nutch默认的lucene排序算法中,用户可以根据需求自己定义排序的规则,提高检索的相关 度。(基于hadoop的nutch网页排序算法研究与实现)系统相关技术介绍Hadoophadoop由Apache公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。Hadoop被定位为一个易于使用的平台,以HDFS、MapReduce为基础,能够运行上千台PCServer组成的系统集群,并以一种可靠、容错的方式分布式处理请求。本文基于Hadoop+Nutch+Solr开发的信息采集搜索项目,现对Had

10、oop进行全面分析和深入研究。Hadoop框架介绍Hadoop是执行大数据分布式应用的开源框架,凭借高效,可靠,可扩展等特性受到广泛应 用,它有两大最核心的模块:进行分布式计算的MapReduce与底层的存储系统HDFS(Hadoop Distributed FileSystem 分布式文件系统)。MapReduce中任务的分解(Map)与结果的汇总(Reduce)是其主要思想。Map就是将一个任 务分解成多个任务,Reduce就是将分解后多任务分别处理,并将结果汇总为最终结果。Hadoop整体由九个子项目组成,其中MapReduce和HDFS两大核心将在后文展开具体介绍。框架 如下图所示,项

11、目功能如下表所示.Hbase分布式数据库Pig数据流语言Hive数据仓库Mahout数据挖掘库Avro远程过程调用MapReduce 分布式处理模型HDFS 分布式文件系统ZooKeeper 分布式协同系统Hadoop CommonHadoop项目的核心图Hadoop框架图子项目功能Hadoop CommonHadoop系统核心,提供子项目的基本支持HDFS实现高吞吐的分布式存储MapReduce执行分布式并行计算HBase一个可扩展的分布式数据库系统Pig为并行计算提供数据流语言和执行框架Hive提供类SQL语法进行数据查询的数据仓库ZooKeeper提供分布式锁等Mahout一个大规模机器

12、学习和数据挖掘库ArvoHadoop的RPC (远程过程调用)方案表Hadoop子项目功能介绍MapReduce编程模型MapReduce是一种编程模型,该模型将数据扩展到多个数据节点上进行处理,它最早是 Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。并行编程模式的最大 优点是容易扩展到多个计算节点上处理数据。开发者可以很容易就编写出分布式并行程序。mapreduce的主要思想是将自动分割要执行的问题(例如程序)拆解成map (映射)和 reduce (化简)的方式;一个MapReduce作业(job)首先会把输入的数据集分割为多个独立的数 据块,再以键值对形式输给

13、Map函数并行处理。Map函数接受一个输入键值对的值,产生一个中 间键值对集合,由MapReduce保存并集合所有具有相同中间key值的中间value值传递给Reduce 函数,reduce对这些value值进行合并,形成一个value值集合,最终形成输出数据。处理流 程如下图:输入Map任务中间结果Reduce任务输出MapReduce的处理流程Hadoop的分布式文件系统(HDFS)Hadoop分布式文件系统(HDFS)是Google GFS存储系统的开源实现,HDFS具有高容错性和高 传输率,特别适合具有大数据集的程序应用。HDFS采用master/slave架构。一个HDFS集群包含

14、一个单独的名字节点(Namenode)和一定数目的数据节点(Datanode)组成一个HDFS集群。HDFS 被设计成一个可以在大集群中、跨机器、可靠的存储海量数据的框架。它将所有文件存储成block块 组成的序列,除了最后一个block块,所有的block块大小都是一样的,他们存放在一组Datanode 中,文件的所有block块都会因为容错而被复制,每个文件的block块大小和容错复制份数都是可配 置的,他们在Namenode的统一调度小进行数据块的创建、删除和复制工作。下图所示为HDFS的体系架构图 HDFS体系结构图Namenode和Datanode都可以在普通计算机上运行。Namen

15、ode作为master服务,它负责管理文件 系统的命名空间和客户端对文件的访问。NameNode会保存文件系统的具体信息,包括文件信息、文件 被分割成具体block块的信息、以及每一个block块归属的Datanode的信息,对于整个集群来说, HDFS通过Namenode对用户提供了一个单一的命名空间;Datanode作为slave服务,在集群中可以 存在多个,通常每一个Datanode都对应于一个物理节点,Datanode负责管理节点上它们拥有的存 储,它将存储划分为多个block块,管理block块信息,同时周期性的将其所有的block块信息发送 给 Namenode。从上面的介绍可以看

16、出,在搭建好的Hadoop集群上,大数据集首先会由HDFS安全稳定地分 布存储到集群内的多台机器上,再利用MapReduce模型将该数据集分解为较小的块(一般为 64MB)进行处理,特点是高效、安全、具备高吞吐量。Hadoop用户可以在不了解分布式底层细节 的情况下很好地利用该分布式平台开发分布式程序,进行高效数据存储和运算。因此Hadoop成为 管理大量数据的关键技术,在信息采集和搜索领域的使用范围越来越广。hadoop具备以下突出的优点:(1)hadoop平台数据处理简单高效。hadoop运行在由普通PC机组建的大型集群上,用户可以在 平台上快速编写并行代码运行分布式应用,避免耗时的数据传

17、输问题;集群处理数据比起单机节 省数倍的时间,数据量越大优势越明显,满足信息采集对数据处理的速度和质量要求。(2)hadoop平台具有高扩展性。可以适当扩展集群数量来满足日益不断增加的数据量,而这并 不会毁坏原集群的特性。(3)安全可靠性高。集群的数据冗余机制使得hadoop能从单点失效中恢复,即Hadoop能自动进 行数据的多次备份,以确保数据不丢失,即使当某个服务器发生故障时,它也能重新部署计算任 务。NutchNutch是Apache基金会的一个开源项目,它原本是开源文件索引框架Lucene项目的一 个子项目,后来渐渐发展成长为一个独立的开源项目。它基于Java开发,基于Lucene框架

18、, 提供Web网页爬虫功能。从开始,Nutch完全构建在Hadoop分布式计算平台之上,因此基于 Hadoop的Nutch信息采集系统可以部署在由成千上万计算机组成的大型集群上,Nutch也分为 2部分,信息爬取和检索,但版本之后,Nutch专注的只是爬取数据,而全文检索的部分彻底的交 给solr。nutch的抓取流程中,抓取器也叫蜘蛛或者机器人,以广度优先搜索(BFS)的方式从企 业内部网或者互联网抓取网页,爬取过程包括了爬虫模块和解析模块。爬虫程序将网页页面抓回 判断格式解析数据,形成页面内容数据库。种子urlnutch的采集过程要预先给定初始种子url,而种子url的选择将直接影响主题搜

19、索的 质量,因此选取初始种子url的原则是种子页面本身要具有较高的主题相关性。初始种子url既 可以是一个网站的首页,也可以是网站的子页面,关键是要尽可能的覆盖主题资源,最终实现抓 取目标的最大化,主要有四种方法生成初始种子url:(1)人工指定:给出某个领域的权威专家给出相关的种子页面。(2)自动生成:根据用户指定的部分关键词,并将这些关键词提交给通用搜索引擎,从检索结果 中抽取前N个页面作为种子页面。(3)混合模式:即人工指定与自动生成相结合,首先利用通用搜索引擎获得部分相关页面,然后 经过人工筛选、过滤、合并、评价,形成一个能充分反映主题特征的种子页面。(4)增加爬虫的学习能力:通过建立

20、各个领域的主题种子库,并对检索历史、用户反馈信息进行 分析的基础上,动态优化产生相应主题的种子页面集。种子的选取在实际操作中应该根据需求及领域的特征选择适当的方法。Nutch插件机制Nutch另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种 数据的采集、查询、集群、过滤等功能能够方便的进行扩展,插件的扩展只需通过给定接口实 现,每个接口之下的实现相互独立,用户可以专注于目标接口的扩展而不必担心该接口与其他接 口的交互Nutch的插件体系结构。nutch使用plugin系统有三个原因:1、可扩展性通过plugin,nutch允许任何人扩展它的功能,而我们要做的只是对

21、给定的接口做简单 的实现。2、灵活性因为每个人都可以根据自己的需求而写自己的plugin,这样plugin就会有一个很强大的 资源库。这样对与应用nutch程序员来说你有了更多的关于内容爬取、过滤的算法来选择。3、可维护性一个plugin的开发者只要关注这个plugin所要实现的功能,而不需要知道整个系统是怎么工作 的,仅仅需要知道的是plugin和plug之间交换的数据类型,这使得内核更加简单,更容易维护。插件体系结构图UrlFilter URL过 、.滤扩展点. IndexFilter 索.引扩展点,. Analyzer分词扩.展点,.Parse解析扩展点yOnlineClusterer集

22、,群扩展点,图Nutch-site.xml定义加载的插件各插件目录下的Plugin.xml 文件插件体系结构图插件内部结构插件的内部结构 runtime :描述了其需要的Jar包,和发布的Jar包requires :描述了依赖的插件extension :描述了扩展点的实现extension-point:描述插件宣布可扩展的扩展点Nutch通过插件机制实现了系统的可扩展性、灵活性和可维护性,使得各个部分的开发人员只需关注 自己的领域,不必去担心如何整合系统,也极大的提高了开发效率。爬虫技术1、网络爬虫网络爬虫实际上是一个基于web的程序,它从初始的种子站点出发,进行过滤检查,当爬虫 打开某个HT

23、ML页面后,它会分析HTML标记结构来获取信息,并获取指向其它页面的超级链 接,然后通过既定的搜索策略选择下一个要访问的站点。从理论上讲,如果为Spider指定个 适当的初始文档集和个适当的网络搜索策略,它就可以遍历整个网络。为了解决Web采集的关键问题,经过不断地研究与实践,将爬行器由最早期单纯的基于整个 Web的爬行器发展到可满足不同需要的多种采集技术的爬行器。大致可以分为以下几种类型:第一种是基于整个Web的爬行器。主要是指目标为从一些种子URL扩充到整个Web的爬 行器。第二种是增量式的爬行器。传统的爬行器根据自己的需要采集足量的信息后停止采集, 当过一段时间这些数据过时后,它会重新采

24、集一遍来代替先前的信息,称为周期性Web采集器。 而增量式的爬行器对待就的页面采用增量式更新,即采集器在需要的时候采集新产生的或己经发 生了变化的页面,而对没有变化的页面不进行采集。和周期性信息采集相比,增量式信息采集能 极大地减小数据采集量,从而极大地减少了采集的时间与空间开销。但是与此同时,增量式信息 采集也增加了算法的复杂性和技术难度。第三种是基于主题的爬行器是指选择性地搜寻那些与预先定义好的主题相关的页面的爬 行器。和基于整个Web的爬行器相比,它并不采集那些与主题无关的页面,所以大大地节省了硬 件和网络资源,保存的页面也由于数量少而更新快。第四种是基于用户个性化的爬行器。不同的用户对

25、一个搜索引擎提交同一个检索词,他 们期待的结果是不尽相同的。而通用的搜索引擎却只能返回相同的检索结果,这显然不完全符合 用户的需要。而基于用户个性化的爬行器是一种轻量级的采集系统,它的目标就是通过用户兴趣 制导或与用户交互等手段来采集信息,给用户提供个性化服务。第五种是移动的爬行器。这种爬行器并不像其他爬行器一样在本地客户机向Web站点服 务器发送页面请求,而是将自己上载到它所要采集的服务器中,在当地进行采集,并将采集结果 压缩后,再回传到本地。这样做大量地节省了 Web资源,大量的剪裁工作将在被采集对象的服务 器上完成。第六种是基于元搜索的爬行器。它对用户的提交的查询请求通过多个领域或门户搜

26、索引 擎搜索,并将结果整合后返回给用户。一般元搜索引擎并不保存Web页面的索引文件,但是有一 些元搜索引擎会保存为它服务的每个搜索引擎的信息特征,以后根据用户请求做出选择。Nutch使用累积式爬取与增量式爬取相结合的策略进行,既保证了数据的完整性又 保证了时效性。2、网络爬虫爬行策略网页的抓取策略可以分为广度优先、深度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的 陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。1、广度优先搜索广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜 索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用

27、广度优先搜索方 法。下面,我将以图示的方式介绍广度优先遍历的过程,如下图所示。图()选择A作为初始种子节点url,则广度优先搜索的过程,如表()所示。表广度优先搜索过程操作队列中的兀素初始空A入队列AA出队列空BCDEF入队列BCDEFB出队列CDEFC出队列DEFD出队列EFE出队列FH入队列FHF出队列FG入队列HGH出队列GI入队列GIG出队列II出队列空在表所示的搜索过程中,出队列的节点顺序即是图()的广度优先搜索过程。由此可见,图() 所示的广度优先搜索过程的顺序为:A-B-C-D-E-F-H-G-I。2、深度优先搜索深度优先搜索策略从起始网页开始,选择一个URL进入,分析这个网页中

28、的URL,选择 一个再进入。如此一个链接一个链接地抓取下去,直到处理完一条路线之后再处理下一条路线, 但每深入一层,网页价值和PageRank都会相应地有所下降。图()所示的深度优先广度优先搜索 过程的顺序为:A-B-C-D -E-H-I-F-G3、最佳优先搜索最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的 相关性,并选取评价最好的一个或几个URL进行抓取。它只访问与主题相关的网页。信息检索技术信息检索(IR),通俗的讲,就是要在一个很大的文本(有时可能是其他数据,如图像等)集合中,找到 与用户需求相关的可以满足用户需求的非结构化信息。向量空间模型 (VS

29、M)向量空间模型将文档映射为一个特征向量V(d) = (t1,3l(d);tn, 3n(d),其中ti(i=1,2,n) 为一列互不雷同的词条项,3i(d)为t i在d中的权值,一般被定义为ti在d中出现频率tfi(d)的函 数,即F0),一.,,ur - d ) k Logf )在信息检索中常用的词条权值计算方法为TF-IDF函数,其中N为所有文档的数 目,ni为含有词条ti的文档数目。TF-IDF公式有很多变种,下面是一个常用的TF-IDF公式:S0)1 痕一*1)心 七根据TF-IDF公式,文档集中包含某一词条的文档越多,说明它区分文档类别属性的能力越低,其权值 越小;另一方面,某一文档

30、中某一词条出现的频率越高,说明它区分文档内容属性的能力越强,其权 值越大。两文档之间的相似度可以用其对应的向量之间的夹角余弦来表示,即文档di,dj的相似度可以表示为HP = cos = iV *L顷进行查询的过程中,先将查询条件Q进行向量化,主要依据布尔模型:当ti在查询条件Q中时,将对应的第i坐标置为1,否则置为0,即从而文档d与查询Q的相似度为H 叫wm%(Q,d) = -LI HHJcS心以疟1 J-LJ-L在查询过程中,可以计算出每个文档与查询的相似度,进而可以根据相似度的大小,将查询的结果进 行排序。向量空间模型可以实现文档的自动分类和对查询结果的相似度排序,能够有效提高检索效率;

31、它的缺 点是相似度的计算量大,当有新文档加入时,则必须重新计算词的权值。Lucene Scoring 评分机制solr使用lucene的内部评分机制,现对lucene的评分机制进行介绍。lucene的评分公式:score(q,d)coord(q,d) qud)idf(t) 2eryNorm(q) (tf(t in() norm(t,d)in其中:tf(t in d)关联到项频率,项频率是指项t在文档d中出现的次数frequency。默认的实现是:tf(t in d) = frequency%idf(t)关联到反转文档频率,文档频率指出现项t的文档数docFreq。docFreq越少idf就 越

32、高。默认实现:numDocsidf(t) = 1 + logdocFreq+1coord(q,d)评分因子,是基于文档中出现查询项的个数。越多的查询项在一个文档中,说明些文档 的匹配程序越高。默认是出现查询项的百分比。queryNorm(q )查询的标准查询,使不同查询之间可以比较。此因子不影响文档的排序,因为所有有文 档都会使用此因子。默认值:queryNorm(q)queryNorm(sumOfSquaredWeights)=sumOfSquaredWeights%每个查询项权重的平分方和(sumOfSquaredWeights)由Weight类完成。例如BooleanQuery地计Mr算

33、:sumOfSquaredWeights =()2 -( idf(t)()2t in q()查询时期的项t加权(如:java),或者由程序使用setBoost()。norm(t,d)压缩几个索引期间的加权和长度因子:Document boost -文档加权,在索引之前使用()Field boost -字段加权,也在索引之前调用()lengthNorm(field)-由字段内的Token的个数来计算此值,字段越短,评分越高,在做索引的时 候由计算。以上所有因子相乘得出norm值,如果文档中有相同的字段,它们的加权也会相乘:norm(t,d)()- lengthNorm(field)-()fiel

34、d f in d named as t索引的时候,把norm值压缩(encode)成一个byte保存在索引中。搜索的时候再把索引中norm值 解压(decode)成个 float 值,这个 encode/decode 由 Similarity 提供。solr使用了 Lucene的内核,也继承了 Lucene的打分规则,我们可以根据自己的应用实现评分算法, 换掉默认的;也可以使用默认的,利用修改solr配置文件,来调节评分。Page Rank 算法一个网页的重要性等于指向它的所有网页的重要性相加之和。如果网页j存在一个指向网页i的连接,则表明j的所有者认为i比较重要,从而把j的一部分重要 性得分

35、赋予i。这个重要性得分值为:PR勺)L(pPR(P,)为网页j的PageRank值,L(p)为网页j的出链数。一个页面的PageRank是由所有链向它的页面(链入页面)的重要性经过递归算法得到 的。一个有较多链入的页面会有较高的等级,相反如果一个页面没有任何链入页面,那么 它没有等级。由于存在一些出链为0,也就是那些不链接任何其他网页的网,也称为孤立网页。因 此需要对PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)q, q 般取值 q二。PR(P,) pj L(p,)PR(p )即网页i的PageRank值;所以公式的意义是:网页i的PageRa

36、nk值二(1-d) i+d* (链接到网页i的所有PR值/该网页的所有出链数量之和)。信息采集搜索系统的安装本系统采用分布式集群进行信息的采集与搜索,集群的配置情况如下图:表()系统配置序号名称描述1使用MapReduce进行并行爬取,使用HDFS存储数据,Nutch的任务提交在 Hadoop集群上,支持分布式2主要负责爬取数据,支持分布式3主要负责检索,对爬完后的数据进行搜索,查询,海量数据支持分布式4Linux系统,在上面运行hadoop、nutch等应用5应用服务器,给Solr提供容器运行6提供JAVA运行环境7提供Nutch等源码编译8IKAnalyzer对网页内容与标题进行分词,便于

37、全文检索hadoop系统的运行环境配置hadoop需要在Java环境和Unix系统下运行,也可以跨平台运行,本系统是在linux 操作系统下运行,需要配置完成以下运行环境:Java环境:版本vi /etc/profileexport JAVA_HOME=/usr/export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH从而完成所需要的java环境配置。hadoop集群配置:我在这里做了

38、 5个机器的hadoop集群在上vi /etc/profileexport HADOOP_HOME=/home/hadoopmaster/ PATH=$PATH:$HADOOP_HOME/binVI/etc/hostslocalhost localhost配置无密码登录,在这里我不做介绍。进入下vI mastersslaVesvI conf /些hd oopm-B Hs=l-s ve-lz/Hio d oop-J. LsZ/conifRjnJ. wu rsl on* f xml st yXe etz t ceaccXscaX-uemrgnET: zLqe _ acn l-c:c 口 rif i

39、gLira.txdriVp x*op u 工七 yAVn cLnie s a de f. am. X t jneuiLJEU / xlcltti e AW=LJLiitnhicljEm : ZZ 1929000=:/viaXwi-=l/lDfox3 = r 匕 yAVp h oij w 工比 y2=-najuie XTiataociu- .匚 clAi?cvalu e/TiomeZli adoormeisu ei?/liado-orumix/ vs_uec/rnoijeru vvdeojp ett vncn ame s di eckxo 1 ms . Hj.it / home/h adoorm

40、ast; er/ hadoopcSCsZi Aas v3t;em/Tiaimesec!OTTid.airv Q/p it Ci a sr tE/ ccn f igpuzria. XonVIconf/h日 d QQpma 找rigrS 以叩ElE-Zhmci-土1,2/conKunl ve j?sion=IB 1 O xml jste:yXe jsheet t巴二 二 we/sc9 J. haref rf ezcn/E .uxhion - ac9Zlf s In匚ur. addressCTTiaXiJO JL9Z . 163 . T . -62- : SOO TQ-00! VcU3 _ 3eco

41、T5t3.axy . rat . ac3d.r ejs3dL 92 a IfiS a= 5 00 -9Qr op art: y rn ame: d J 3 _ n ame . d xzr-c: /n ame XHome /hat己口 opiuam tex /Hadaapdf s / x 1 e s ys t ent/ nBLiEe y / 二 口 p E tG *: UrimzTLM AcdJE j a d.at-A . dj_ eC / nairie y Ti ome / Tn a cacFOEnna sue 3?/liacars/ rilesysuein/lsE.a n.airie :=-

42、cddE s x: e:p-X j_ c= at . on-37 valuo图/ coriLfxoki.x-a.-bxon.23-vI conf/had oop ma ste rS lavel:-/had oo p-1.1.2/c onfua_ veision=Fr 1.011xmlat; vie she e t t;Me=1,lrext:7 xs 111 iLref=ficama maprs d. _ j ob _ track-ezi-192.168.47.64:9001niaLpred- tasktiackezc .ihld . tasks . imaKiiiiuiQC/n.aiue kz

43、valiJLe2niaLpr ed. t as KuzcacKezt?. leduce t as Jcs raaLKinmiiK /name nMtpxedL. system . d.in:a _口巳 A/hcimE/kiado apmas t m x/m-ap i? e due e / s y2 it sm CrkBLiigXmaipHmci w lacaX a di-c/niaLitte KTraluiO/hoine/badooDrTiasteTVmapre du c-e / loGaK/valmo /properuva把配置好的hadoop文件夹拷贝到集群的其他机器中。nutch的运行环

44、境配置下载的源文件,把nutch导入到eclipse进行二次开发的过程在这里不做介绍。vi conf/protocol-httpclient|urlfilter-regex|parse-(html|tika|js|pdf|msword)|recommquery|index-(basic|anchor)|scoring-opic|urlnormalizer-(pass|regex|basic)10000/property Mozilla/ (compatible; MSIE ; Windows NT; DigExt)Gecko/Firefox/./src/plugin 2与solr的集成配置1、

45、将 solr/example/webapps/拷贝到 tomcat 的 webapps 中2、进入到到tomcat7中,对war进行解压,然后删除war包。3、拷贝 solr/example/lib/ext 下的相关依赖 jar 包到 webapps/solr/WEB-INFO/lib 中4、修改的solr/home指定到solr所在的路径。5、修改tomcat/conf的文件中的编码加入一行URLEncoding=UTF-8”6、solr不会自动创建core,把multicore中的core0拷到solr/example/,拷贝nutch的配置文件到core0/conf/下, 重命名为,修改

46、要和对应的core对应,7 加入分词工具,在这里对我用的是IKAnalyzer。基于Hadoop+Nutch+Solr的信息采集搜索系统的设计与实现信息采集搜索系统的实现,以第二章相关技术理论分析与研究为基础,利用MapReduce 编程模型在分布式处理方面的优点,实现了 pagerank算法在系统检索中的评分;对nutch的url 过滤,内容解析插件进行改进,实现了用户自订制链接和获取的主题内容;对本地资料文件实现 格式识别并抽取题名、时间、内容等文本信息保存为xm l文件,实现本地相关主题信息查询。系 统采用IK分词器,最终完成了信息采集与搜索的设计与实现。系统结构总体设计本系统部署在ha

47、doop+nutch+solr的集群框架上,分为四个部分,系统功能组成如下:基于Hadoop+Nutch+Solr的信息采集搜索系统的设计与实现fields奖惩 因子设定系统功能组成图资料文档解析,实现单个文件和压缩文件上传,对压缩文件自动解压;对资料文件实现多格 式识别,例如pdf,word,html,excel等格式文件,文件提取标题,作者,时间,内容等关键信 息,转换为xml文件,保存在指定路径下,对文件集建立索引,进行搜索查询。分布式爬取,系统利用hadoop+nutch实现分布式数据爬取,对插件进行改进实现ur l过滤;对 爬出的子站点网页结构进行分析,过滤那些不希望存在的文本内容,

48、改进解析插件,实现用户可 以进行内容过滤定制,去除脚本、图片以及其它标签,获取和处理跟主题相关的内容;对网页编 码格式进行提取,实现内容编码的转换。本系统支持带有一次跳转的简单表单登陆的抓取,系统 管理中设置对应的相关信息;复杂的登陆需要分析登陆过程,另外写出相对应的网络协议插件。 系统区分领域,根据不同主题建立索引。分布式检索,系统实现选择不同主题的core进行查询,输入查询关键词,提供检索文档中出现词 频最高的前n个词和关联文档;用户自动创建不同core,修改模板配置文件相应选项,进行替 换。系统管理,实现用户对nutch插件的修改;实现用户对简单表单登陆的相应参数修改;用户可以 改变如k

49、eywords, description, pagerank等fields索引项信息,根据站点特征,从而改变排序 主题关联度。系统架构图系统利用hadoop+nutch实现分布式数据爬取,基于Map/Reduce编程模型,充分利用其并行特性 进行任务分发和结果的归并,获取高效高质的爬行结果。系统架构图如下:系统架构图本系统基于五个节点的Hadoop框架实现。在Master节点上,JobTracker负责待爬取网 页链接的分割并将任务分配给五个节点的TaskTracker执行爬取任务。Master节点在协调整个系 统分布式处理的同时,也充当一个DataNode参与任务执行。TaskTracker

50、接受JobTracker分配 的任务后,启动多个线程执行Map下载任务,完成网页抓取工作。TaskTracker监测到Map任务 执行完毕后启动Reduce执行数据合并任务。在HDFS文件系统中有三个数据库:CrawlDb和 LinkDb存储URL及URL互联关系,作为爬行和重新爬取的依据;Segments存储抓取的网页内容。1、在Hadoop和nutch基础上爬取的运行流程如下图所示:1(2) generate segment (contains urls scheduled for fetching)(5) update crawldb with new extracted urls图ha

51、doop+nutch爬取运行流程读取URL种子文件到CrawlDB,然后进行下面的抓取程序:(1)循环1-4到指定的抓取深度; 从CrawlDB生成抓取列表; 根据抓取列表中的URL抓取网页; 分析处理抓取的内容; 更新CrawlDB库。(2)解析出文本和转换每个页面中外部对它的链接。(3)用solr建立索引。各个模块分析如下:插入URL列表(Inject)(1)将URL集合进行格式化、主题相关度过滤和合并,消除其中非法URL,并设定入了 URL状态 (unfetched)和初始化分值;(2)将URL及其状态、分值存入CrawlDB数据库,与原数据库中重复则更换成新的。下面用Infect模块的

52、例子说明MapReduce的工作过程:MapReduce 程序 1目的:将输入转换为CrawlDatum格式输入:URL文件Map(line)-Reduce()合并多重的URL输出:临时的CrawlDatum文件MapReduce 程序 2目的:合并上一步产生的临时文件到新的DB输入:上次MapReduce输出的CrawlDatumMap()过滤重复的URLReduce()合并两个CrawlDatum到一个新的DB输出:CrawlDatum生成抓取列表(Generate)(1)从CrawlDB数据库中将URL取出并按预设规则进行过滤。(2)对URL进行降序排列;(3)将排列列表写入segmen

53、ts目录中。抓取内容(Fetch)(1)对segments目录下的抓取列表依次执行抓取;(2)抓取过程中,页面的URL地址可能会发生跳转,从而需要重定向URL地址;本系统支持带有 一次跳转的简单表单登陆的抓取,需要在配置文件中设置对应的相关信息;复杂的登陆需要分析 登陆过程,写出相对应的网络协议插件。(3)抓取过程采用多线程方式进行,Fetch操作过程中得到页面源文件后同时也调用Parse操 作。分析处理内容(Parse)使用对应的插件解析segments目录中由Fetch得到的页面,并进行整理,将页面分解为parse- date和parse-text,parse-date中保存的是页面的题名

54、、作者、日期、链接等内容;parsetext 中保存的是页面的文本内容。本系统用户可对种子站点的各个子站点进行分析,自动进行分 类,订制子站点抓取的内容,提高搜索主题相关度。过滤跟主体不相关的链接。更新 CrawlDB 库(Update)根据segments目录下crawl_fetch目录和crawl_pars。目录中的内容,对CrawlDB进行更新,增 加新的URL。转化链接(Invert Links)Invert Links操作用来更新LinkDB,为建立索引的工作提供准备。本系统实现mapreduce的 pagerank算法,将pagerank作为一独立的索引项添加到nutch默认的lu

55、cene排序算法中。2、分布式索引是实现检索前的必要步骤。对于爬取的网页需要先进行解析并建立索引。流程如下:数据采集格式解析内容抓取结构化数据索引流程图分布式索引操作从非结构化文档解析开始,提取数据库的文本内容创建相应的Document实 例,用IK分词工具对汉字实行中文分词,最后将分词存入段结构。为了提高分布式检索的性能, 需要进行内容评分排序,本系统用lucene内部评分机制,实现mapreduce的pagerank算法,将 pagerank作为一独立的索引项添加到nutch中;分布式索引系统的设计基于Map/Reduce编程 模型并行实现,爬行结果会以键值对(key=URL,value二

56、Content)形式传递进行索引,首先 JobTracker以key=URL分割网页内容,然后各个TaskTracker启动Map任务处理分配到的网页数 据,生成相应倒排索引片段,最后Reduce将各个Slave节点处理得到的索引片段合并为一个索引 整体并保存在分布式文件系统HDFS中。(1)非结构文档解析Lucene实现索引需要对文档格式进行解析,本系统采用ApacheTika插件自动判断文章类 型,调用相应的类进行文本内容提取,创建对应的Document实例,在Document实例对象中拆分 文本内容并用其创建多个Field实例,文档的标题、作者、摘要、正文以及关键字等都属于Field域,

57、这些域值作为索引项通过IndexWriter对象的addDocument方法传递给Lucene实现索 引,最终会以搜索结果的形式呈现给用户。除了上面提及的常用文档解析,还有ZIP压缩包、RTF等相关格式文件的解析;nutch功能 强大,可提供图像和多数音频文件的转换。(2) 分词实现模块solr基于Lucene开发,可以很好的支持英文分词。对于中文分词,本文将solr和 IKAnalyzer分词器集成实现中文分词。修改,添加如下配置:fieldType name=text_ik class=analyzer type=index isMaxWordLength=false class=/ana

58、lyzer type=query isMaxWordLength=true class=/fieldType(3) MapReduce实现PageRank内容评分排序算法Nutch抓取网页后将网页存储在Hadoop集群NameNode节点下的HDFS中。在集群环境下,利用 MapReduce编程模式将海量网页数据以健值对的形式来处理,充分发挥Hadoop集群的优势来分别计 算它们各自的PageRank值,通过对Nutch分布式搜索引擎中网页抓取模块、索引构建模块和检索模块 的分析和研究,在Nutch中基于MapReduce编程模式实现PageRank算法流程如下: 将CrawlDb数据库中的数

59、据作为输入进行Map操作,URL,CrawlDatum健值对作为Map输出,利用Reduce操作对Map过程的输出进行处理,包括合并和去重等操作,并将处理后的结果输 出到URL数据库fetchdb中。 将URL数据库fetch和LinkDB数据库的数据健值对srcUrl,desUrl作为输入进行Map操 作,输出中间健值对destUrl, srcUrl,将中间数据健值对按key进行分组,获得链接到目标 URL的链接集合列表destUrl,list_srcUrli。接着对URL的链接集合列表进行Reduce操 作,设置每个链接网页的初始值为1。最后输出目标URL和链接对象srcUr l所组成的健值对 url, srcUrl。这些url, srcUrl健值对集合将构成pagerankdb库,为程序中计算网页的 PageRank值做准备。 将pagerankdb库中的url, srcUrl健值对作为输入,通过迭代计算网络爬虫所抓取的 网页pagerank值,直至达到预先设定的迭代次数才完成运算。采用Java语言编程实现基于 MapReduce编程模型的pagerank的具体算法为:Map (key, value)/k

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!