大数据技术文档.docx
《大数据技术文档.docx》由会员分享,可在线阅读,更多相关《大数据技术文档.docx(27页珍藏版)》请在三一办公上搜索。
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的排序算法,改进系统搜索的关联度)。系统功能结构(1)本地资源解析模
4、块对本地文本pdf,word,excel内容解析和索引,按照主题分类,添加到相应的主题中进行搜素。(2)搜索模块用户根据不同主题进行内容索引、关键词查询,将跟查询关联度最高的前n个文档返回给用户,并统计出在这些查询结果中出现频率最高的前n个词。用户可根据需求修改配置文件,提高搜索的相关度。(3)信息爬取模块 信息定制采集模块1、种子URL:用作抓取器爬取的出发点,也叫做根URL。2、关键字:关键字的选择很重要,描述了抓取任务的所属分类的主题方向。3、深度:由于Nutch抓取模块采用的是广度优先的策略,抓取深度的选择决定了抓取时间的长度和抓取网页数量的大小。一般根据所选取的种子URL的类型和详细
5、程度以及对网页抓取规模的需求来进行设置。 在信息定制模块用户设置主题信息,url信息、抓取深度的信息,抓取线程根据定制信息,开始抓取工作。(综合型搜索引擎;某一主题类网站,垂直搜索引擎;博客搜索引擎) 信息解析过滤模块根据fiddle进行登录分析,修改网络协议插件,支持简单的一次跳转表单登录,用户可以在配置文件中进行设置,然后抓取内容;复杂的登陆需要分析登陆过程,写出相对应的网络协议插件。由于本系统在网络资源采集过程中支持个性化定制,只对目标站点感兴趣的内容进行采集,分析目标站点的结构特点,在页面采集完成后,从中提取出链接、元数据、正文、标题、关键字、描述等信息,进行后续的过滤和其他处理。链接
6、的提取首先要判断页面类型,页面的类型可以有应答头分析得出,根据不同的类型选择相应的爬取和解析插件,对遇到带有链接的标记如、等,就从标记结构的属性中找出 目标url,并从成对的该标记之间抽取出正文作为该链接的说明文字,链接文字一般能反映文章的主题信息,系统设定阈值,判断主题和说明性文字的相关性,对爬取链接进行过滤,加入到爬取链接列表中。定制采集的子模块,根据正则表达式对网页内容进行过滤,获取和处理跟主题相关的内容,过滤无关的信息内容;对网页编码格式进行提取,实现内容编码的转换。(下一步改进主题相关度链接过滤算法)(4)系统管理模块用户对根据需求对系统的配置参数进行修改。论文组织结构 1、绪论。本
7、章首先介绍了本文研究的背景及意义,接着研究了信息采集与搜索技术的国内外发展现状,最后给出了本文研究的内容和论文组织结构。2、关键技术。Hadoop、Nutch、Solr技术架构及文本检索算法本章介绍了开源软件Hadoop、Nutch、Solr的基本情况;详细介绍了Hadoop框架及其进行分布式计算的编程模型MapReduce和数据存储系统HDFS;Nutch以Hadoop的分布式文件系统HDFS作为底层数据平台,采用MapReduce编程方式实现数据的分布式处理,以扩展机制为突出特性,用户可以根据实际需求对其添加插件进行扩展改进,构建自己的信息采集搜索系统;通过Solr集群,采用分布式索引在不
8、同的机器上并行执行,实现检索服务器之间的信息交换,减小索引对机器的要求,同时介绍了常用的文本检索算法VSM ,pagerank和lucene默认的排序算法。3、系统环境配置。Hadoop+Nutch+Solr系统的运行环境配置与运行。本章介绍配置Hadoop+Nutch+solr系统的运行环境并详细阐述其运行流程。4、基于Hadoop+Nutch+Solr的信息采集搜索系统的设计与实现。本课题采用hadoop+Nutch+Solr开源软件,缩短了开发时间并且能够根据个性化需要采集数据提高搜素结果的精度,基于mapreduce实现了pagerank算法,将pagerank作为一个独立的索引项添加
9、到nutch默认的lucene排序算法中,用户可以根据需求自己定义排序的规则,提高检索的相关度。(基于hadoop的nutch网页排序算法研究与实现)系统相关技术介绍Hadoop hadoop由 Apache公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。Hadoop被定位为一个易于使用的平台,以HDFS、MapReduce为基础,能够运行上千台PCServer组成的系统集群,并以一种可靠、容错的方式分布式处理请求。本文基于Hadoop+Nutch+Solr开发的信息采集搜索项目,现对Hadoop进行全面分析和深入研究。Hadoop框架介绍Hadoop是执行大数据分
10、布式应用的开源框架,凭借高效,可靠,可扩展等特性受到广泛应用,它有两大最核心的模块:进行分布式计算的MapReduce与底层的存储系统HDFS(Hadoop Distributed 分布式文件系统)。MapReduce中任务的分解(Map)与结果的汇总(Reduce)是其主要思想。Map就是将一个任务分解成多个任务,Reduce就是将分解后多任务分别处理,并将结果汇总为最终结果。Hadoop整体由九个子项目组成,其中MapReduce和HDFS两大核心将在后文展开具体介绍。框架如下图所示,项目功能如下表所示.图 Hadoop框架图子项目功能Hadoop CommonHadoop系统核心,提供子
11、项目的基本支持HDFS实现高吞吐的分布式存储MapReduce执行分布式并行计算HBase一个可扩展的分布式数据库系统Pig为并行计算提供数据流语言和执行框架Hive提供类SQL语法进行数据查询的数据仓库ZooKeeper提供分布式锁等Mahout一个大规模机器学习和数据挖掘库ArvoHadoop的RPC(远程过程调用)方案表Hadoop子项目功能介绍MapReduce编程模型MapReduce是一种编程模型,该模型将数据扩展到多个数据节点上进行处理,它最早是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。并行编程模式的最大优点是容易扩展到多个计算节点上处理数据。开发
12、者可以很容易就编写出分布式并行程序。mapreduce的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式;一个MapReduce作业(job)首先会把输入的数据集分割为多个独立的数据块,再以键值对形式输给Map函数并行处理。Map函数接受一个输入键值对的值,产生一个中间键值对集合,由MapReduce保存并集合所有具有相同中间key值的中间value值传递给Reduce函数, reduce对这些value值进行合并,形成一个value值集合,最终形成输出数据。 处理流程如下图:MapReduce的处理流程Hadoop的分布式文件系统(HDFS)Had
13、oop分布式文件系统(HDFS)是Google GFS存储系统的开源实现,HDFS具有高容错性和高传输率,特别适合具有大数据集的程序应用。HDFS采用master/slave架构。一个HDFS集群包含一个单独的名字节点(Namenode)和一定数目的数据节点(Datanode)组成一个HDFS集群。HDFS被设计成一个可以在大集群中、跨机器、可靠的存储海量数据的框架。它将所有文件存储成block块组成的序列,除了最后一个block块,所有的block块大小都是一样的,他们存放在一组Datanode中,文件的所有block块都会因为容错而被复制,每个文件的block块大小和容错复制份数都是可配置
14、的,他们在Namenode的统一调度小进行数据块的创建、删除和复制工作。下图所示为HDFS的体系架构 图 HDFS体系结构图Namenode和Datanode都可以在普通计算机上运行。Namenode作为master服务,它负责管理文件系统的命名空间和客户端对文件的访问。NameNode会保存文件系统的具体信息,包括文件信息、文件被分割成具体block块的信息、以及每一个block块归属的Datanode的信息,对于整个集群来说,HDFS通过Namenode对用户提供了一个单一的命名空间;Datanode作为slave服务,在集群中可以存在多个,通常每一个Datanode都对应于一个物理节点,
15、Datanode负责管理节点上它们拥有的存储,它将存储划分为多个block块,管理block块信息,同时周期性的将其所有的block块信息发送给Namenode。从上面的介绍可以看出,在搭建好的Hadoop集群上,大数据集首先会由HDFS安全稳定地分布存储到集群内的多台机器上,再利用MapReduce模型将该数据集分解为较小的块(一般为64MB)进行处理,特点是高效、安全、具备高吞吐量。Hadoop用户可以在不了解分布式底层细节的情况下很好地利用该分布式平台开发分布式程序,进行高效数据存储和运算。因此Hadoop成为管理大量数据的关键技术,在信息采集和搜索领域的使用范围越来越广。hadoop具
16、备以下突出的优点:(1)hadoop平台数据处理简单高效。hadoop运行在由普通PC机组建的大型集群上,用户可以在平台上快速编写并行代码运行分布式应用,避免耗时的数据传输问题;集群处理数据比起单机节省数倍的时间,数据量越大优势越明显,满足信息采集对数据处理的速度和质量要求。(2)hadoop平台具有高扩展性。可以适当扩展集群数量来满足日益不断增加的数据量,而这并不会毁坏原集群的特性。(3)安全可靠性高。集群的数据冗余机制使得hadoop能从单点失效中恢复,即Hadoop能自动进行数据的多次备份,以确保数据不丢失,即使当某个服务器发生故障时,它也能重新部署计算任务。Nutch Nutch 是
17、Apache 基金会的一个开源项目,它原本是开源文件索引框架 Lucene 项目的一个子项目,后来渐渐发展成长为一个独立的开源项目。它基于 Java 开发,基于 Lucene 框架,提供 Web 网页爬虫功能。从 nutch0.8.0开始,Nutch 完全构建在 Hadoop 分布式计算平台之上,因此基于 Hadoop 的 Nutch 信息采集系统可以部署在由成千上万计算机组成的大型集群上,Nutch 也分为2部分,信息爬取和检索,但nutch1.2版本之后,Nutch专注的只是爬取数据,而全文检索的部分彻底的交给solr。nutch的抓取流程中,抓取器也叫蜘蛛或者机器人,以广度优先搜索(BF
18、S)的方式从企业内部网或者互联网抓取网页,爬取过程包括了爬虫模块和解析模块。爬虫程序将网页页面抓回判断格式解析数据,形成页面内容数据库。种子url nutch的采集过程要预先给定初始种子url,而种子url的选择将直接影响主题搜索的质量,因此选取初始种子url的原则是种子页面本身要具有较高的主题相关性。初始种子url既可以是一个网站的首页,也可以是网站的子页面,关键是要尽可能的覆盖主题资源,最终实现抓取目标的最大化,主要有四种方法生成初始种子url:(1)人工指定: 给出某个领域的权威专家给出相关的种子页面。(2)自动生成:根据用户指定的部分关键词,并将这些关键词提交给通用搜索引擎,从检索结果
19、中抽取前N个页面作为种子页面。(3)混合模式:即人工指定与自动生成相结合,首先利用通用搜索引擎获得部分相关页面,然后经过人工筛选、过滤、合并、评价,形成一个能充分反映主题特征的种子页面。(4)增加爬虫的学习能力:通过建立各个领域的主题种子库,并对检索历史、用户反馈信息进行分析的基础上,动态优化产生相应主题的种子页面集。种子的选取在实际操作中应该根据需求及领域的特征选择适当的方法。Nutch插件机制Nutch另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展,插件的扩展只需通过给定接口实现,每个接口之下的实现相互独立
20、,用户可以专注于目标接口的扩展而不必担心该接口与其他接口的交互Nutch 的插件体系结构。nutch使用plugin系统有三个原因:1、可扩展性 通过plugin,nutch允许任何人扩展它的功能,而我们要做的只是对给定的接口做简单的实现。2、灵活性 因为每个人都可以根据自己的需求而写自己的plugin,这样plugin就会有一个很强大的资源库。这样对与应用nutch程序员来说你有了更多的关于内容爬取、过滤的算法来选择。3、可维护性 一个plugin的开发者只要关注这个plugin所要实现的功能,而不需要知道整个系统是怎么工作的,仅仅需要知道的是plugin和plug之间交换的数据类型,这使得
21、内核更加简单,更容易维护。插件体系结构图 图 插件体系结构插件的内部结构图 插件内部结构runtime :描述了其需要的 Jar 包,和发布的 Jar 包requires :描述了依赖的插件extension :描述了扩展点的实现extension-point: 描述插件宣布可扩展的扩展点Nutch通过插件机制实现了系统的可扩展性、灵活性和可维护性,使得各个部分的开发人员只需关注自己的领域,不必去担心如何整合系统,也极大的提高了开发效率。爬虫技术1、网络爬虫网络爬虫实际上是一个基于 web的程序,它从初始的种子站点出发,进行过滤检查,当爬虫打开某个 HTML 页面后,它会分析 HTML 标记结
22、构来获取信息,并获取指向其它页面的超级链接,然后通过既定的搜索策略选择下一个要访问的站点。 从理论上讲, 如果为 Spider 指定个适当的初始文档集和个适当的网络搜索策略,它就可以遍历整个网络。为了解决Web采集的关键问题,经过不断地研究与实践,将爬行器由最早期单纯的基于整个Web的爬行器发展到可满足不同需要的多种采集技术的爬行器。大致可以分为以下几种类型:第一种是基于整个Web的爬行器。主要是指目标为从一些种子URL扩充到整个Web的爬行器。第二种是增量式的爬行器。传统的爬行器根据自己的需要采集足量的信息后停止采集,当过一段时间这些数据过时后,它会重新采集一遍来代替先前的信息,称为周期性W
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 技术 文档

链接地址:https://www.31ppt.com/p-1667977.html