版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号 密级UDC 编号学位论文基于Hadoop平台的教育资源垂直搜索系统的设计与实现ImplementationofEducationResourceVerticalSearchingSystemBasedonHadoop分类号:密级:UDC:编号:学位论文基于Hadoop平台的教育资源垂直搜索系统的设计与实现ImplementationofEducationResourceVerticalSearchingSystemBasedonHadoop学科专业:计算机应用技术计算机科学与通信工程学院2011年04月江苏大学工程硕士学位论文PAGEI学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密 ,在年解密后适用本授权书。本学位论文属于不保密 。学位论文作者签名:指导教师签名:年月日年月日毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:
学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日江苏大学硕士研究生毕业论文PAGEVI教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日摘要互联网的出现改变了我们的生活、工作、学习乃至娱乐的方式。网上丰富的基础教育资源为广大基础教育工作者、学生以及学生家长提供了充足的参考资料和教育信息,然而由于缺乏行之有效的整合标准和手段,目前这些资源的分布呈现高度分散状态,内容庞杂无序,结构化程度低,用户往往难以快速准确地获取到自己需要的信息。所以我们必须研究和设计出针对教育资源搜索的网络平台,以提高用户获取教育资源信息的速度和准确度。本文通过对现有的互联网搜索平台的分析,借鉴其他应用领域的垂直搜索平台所采用的架构和设计方法,通过使用Hadoop平台的分层分布的架构和聚焦蜘蛛的爬行技术,提出基于Hadoop平台的B/S多层分布式架构系统模型,给出提高搜索运行效率的若干关键技术,并基于该架构的设计实现了系统。本文的主要工作包括:(1)通过对Hadoop平台的基本原理和架构以及Hadoop平台的两个核心组件HDFS与Map/Reduce的分析,选择Hbase对系统的数据进行管理,并对可视化系统的Hbase数据模型的设计以及条件查询的改进进行阐述。(2)基于抽样调查和教育经验,进行MDVSP的软件需求分析,设计基于Hadoop平台的教育资源垂直搜索(MDVSP)架构模型。该架构模型把业务处理服务器与Web服务器分开,采用并行计算提高业务处理能力,使得基于该架构模型下的系统具有良好的可伸缩性、可扩展性、可维护性和更高的安全性。(3)研究基于Hadoop平台的教育资源搜索系统所采用的关键技术,包括聚焦蜘蛛的爬行技术、网页信息结构化提取技术、远程过程调用(RPC)技术、基于Hadoop的Map/Reduce技术和基于Hadoop的负载均衡技术。(4)以Hadoop为基础架构,采用Java开发语言,设计并实现Hadoop平台的教育资源搜索系统。经过详细的系统测试,系统在实现效率、搜索的准确率和可扩展性等方面较有代表性的垂直搜索平台先进。关键词:垂直搜索引擎;Hadoop;网页信息抽取;抽取规则;索引库AbstractTheWWWhasbeenatremendousimpactonthewayofhumanbeingslives,works,andstudies,evenentertainments.Especiallyineducationrealm,educators,studentsandtheirparentscangetmoreandmorereferencesandeducationresourceswiththehelpofinternet.However,there’sstillanunresolvedaproblem,forlackingofsuitablestandardsandfilteringmethods,actually,itwillspendmoretimetogettheresourceyoureallywant.Tosolvethisissue,weneedtodosomeresearchanddesignabetterplatformtoextractinterestinginformationconveniently,accuratelyandefficiently.OnthebasisofcomparingtheframeworksanddesigningmethodsadoptedbycurrentSearchingEngines,andlearningfromotherapplicationsusedinverticalsearchingplatformarchitectureanddesignmethod,bymeansofthehierarchicalstructureandthefocused-spidercreepingtechnology,thisdissertationpresentsanewmodelofMulti-tierDistributedVerticalSearchingPlatform(MDVSP)forEducationalRealmbasedonHadoop,whichisamixedB/Sframework.ThethesisalsoamplydemonstratesthekeytechniquesofimprovingtheoperatingefficiencyoftheMDVSP.Moreover,basedonthenewmixedframeworkofMDVSP,thedissertationsucceedsindesigningthePrototypeSystemofMDVSP.Thedissertationmainlyconcernsthefollowingfouraspects:1.ThisdissertationpresentsthebasicprinciplesandframeworkoftheHadoopplatform,andintroducesthetwocorecomponentsofHadoopHDFSandMap/Reducealgorithm.TomanagedataontheHadoopplatformbetter,theMDVSPchoosesHbaseasdatabasestorage,whichisamajorcomponentofHadoop.ThisthesisalsousesseveralsectionstodescribetheHbase’sdatestructuremodeldesignandthequeryimprovements.2.MDVSPsoftwarerequirementanalysisisbasedonsamplingsurveyresultsandeducationexperiences.MDVSPischosenbasedontheanalysisresult.TheadvantageofthismodelistoprocessthebusinessandWebseparately,anditcanparallelcomputeMap/Reduce.WhichprovideMDVSPbettercondensability,expendability,maintainabilityandhighersecurity.3.ThekeytechnologiesthatMDVSPhasbeenusedincludesfocused-spidercreepingtechnology,structuredwebinformationextractiontechnology,remoteprocedurecall(RPC)technology,Map/ReducetechnologybasedonHadoopandloadbalancingtechnologybasedonHadoop.4.Withthekeytechnologiesresearching,anddetailedanalyzingtherequirementoftheMDVSP,thisdissertationaccomplishesthedesignofthePrototypeSystemofM-Disem,whichusesJavaprogramminglanguageandstructuresonHadoopplatform.AfteradetailedsystemtestingandcomparedwithotherVerticalSearchingSystems,theMDVSPachieveshighefficiency,accuracysearchingandgoodscalability.KeywordsVertical;SearchingEngine;Hadoop;WebInformationExtraction;Extractionrules;IndexDatabase江苏大学硕士研究生毕业论文目录第一章绪论 11.1课题研究背景及意义 11.1.1背景及意义 11.1.2目前现状 11.2教育资源搜索存在的问题 21.3本文主要工作 31.4本文的组织结构 3第二章Hadoop平台架构 52.1Hadoop的产生 52.2基于Hadoop分布式架构的优势 52.3Hadoop组件 62.4本章小结 6第三章MDVSP平台需求分析 83.1教育资源垂直搜索的用户群 83.2MDVSP搜索资源类型需求 93.3MDVSP搜索平台功能需求 103.4本章小结 11第四章基于HADOOP平台的MDVSP模型 124.1分布式文件系统HDFS与Map/Reduce技术 124.1.1分布式文件系统HDFS 134.1.2Map/Reduce技术 164.2基于Hadoop的MDVSP平台的多层分布式架构 194.2.1系统体系结构 194.2.2MDVSP平台数据处理模型整体框架 204.2.3MDVSP平台数据在HDFS中存放结构 214.3MDVSP通信数据模型设计 214.3.1数据模型分析 214.3.2数据模型设计 224.3.3主表设计 234.4本章小结 25第五章基于Hadoop平台的MDVSP的关键技术 275.1MDVSP中聚焦蜘蛛 275.1.1工作原理 275.1.2关键技术 285.2Map/Reduce设计 315.2.1Map/Reduce逻辑结构设计 325.2.2Map/Reduce数据流设计 325.2.3容错和可靠性设计 335.2.4任务粒度和backup任务性能优化设计 345.3远程调用设计 355.3.1MDVSP采用的RPC远程调用设计思想 355.3.2MDVSP-RPC数据表示设计 365.3.3MDVSP-RPC服务器端的实现 385.3.4MDVSP-RPC客户端的实现 385.4Hadoop的HA设计 395.4.1HealthCheck设计 405.4.2HadoopFailover流程设计 415.5本章小结 42第六章MDVSP平台的实现 436.1方案部署 436.1.1硬件配置 446.1.2SSH公钥认证配置 446.1.3Hadoop平台搭建 446.1.4Hbase平台搭建 456.1.5与垂直搜索引擎结合 466.2开发平台及其开发工具 476.2.1操作系统 476.2.2硬件平台 476.2.3开发工具 476.3MDVSP系统的实现 486.3.1聚焦蜘蛛模块的实现 486.3.2教育资源搜索结果 496.3.3教育资源信息自动抽取的实现 516.3.4Lucene倒排文件索引结构 566.3.5教育资源信息的存储实现 586.4用户查询功能的实现 586.4.1用户查询主要函数实现 586.4.2教育资源信息查询 606.5运行结果与对比 626.6本章小结 64第七章总结与展望 657.1总结 657.2展望 65参考文献 67致谢 69第3章垂直搜索引擎的关键技术面向丝绸领域的垂直搜索引擎关键算法研究江苏大学硕士研究生毕业论文―PAGE26―PAGE42第一章绪论1.1课题研究背景及意义1.1.1背景及意义随着网络与通信技术的迅速发展,Web信息爆炸性的增长,互联网已经成为一个巨大的海量信息空间。如何迅速、准确、方便的从如此庞大的信息库获取自己需要的信息,是互联网用户面临的一个重要问题。搜索引擎的出现,整合了众多网站信息,极快的查询起到了信息导航的作用,信息的价值得到众多商家的普遍认可,成为互联网中最有价值的领域。大家熟知的搜索引擎Google、百度、雅虎等都是搜索引擎的杰出代表,为互联网的发展做出了重要的贡献。我国互联网络信息中心CNNIC于2006年1月发布的《第17次中国互联网络发展统计报告》显示:搜索引擎以65.7%的使用率成为第二大网络服务[1]。互联网的信息量呈爆炸趋势增长,几年前全球式搜索引擎收录的网页量只有几千万页,而现在已经达到几十亿页,数量增加带来的是搜索服务的品质下降,查询的结果集就是海量的,经常是几十万笔的资料,结果里存在大量的重复信息和垃圾信息,用户越来越难迅速找到符合的信息,现在经常使用搜索引擎可以感觉到很难在短时间内准确的筛选出需要的内容。因此,如何对通用搜索引擎技术进行改进,使查询的结果更加贴近用户的要求,成为搜索引擎行业近期的研究热点。对于基础教育领域的广大教师、学生、家长以及其他教育工作者,互联网已经成为他们获取基础教育资源和信息的重要工具,网上大量的试卷、教学研究论文、课件、课外阅读材料、招生信息等基础教育资源信息可以使教师提高自己的工作效率和水平,使学生扩大自己的知识面,使家长掌握最新的教育信息。那么对教育资源用户来讲,目前的信息服务能否满足他们的需求?他们更倾向于什么样的信息服务形式?1.1.2目前现状获取基础教育资源最常用的方式是搜索引擎[2]用户获取基础教育资源的较经常使用的方式为搜索引擎、学科专题网站、基础教育综合网站。其中使用最多的是搜索引擎。目前的搜索引擎还不能完全满足用户需求[2]综合性通用搜索引擎在一定程度上方便了用户查找利用网上信息,但由于它面向的是大众,强调通用性,搜索结果中有很多杂乱信息,信息的准确度较低,不能完全满足基础教育用户的需求。倾向简单的检索方式[2]大多数人通常使用关键词查询,一部分人使用诸如“+(and)”、“-(or)”等检索技巧,使用高级检索的人很少,用合适的关键词检索是被所有用户认为是比较容易的,所有用户都倾向于简单易用的检索方式。通常输入的检索内容包含不同层次的信息大多数用户输入单个或多个关键词,而多个关键词的查询往往包含有两类信息——主题描述信息和资源的类别限制信息。比如说,一位教师输入“《阿Q正传》教案”,关键词“阿Q正传”是主题信息,关键词“教案”,是类别限制信息,再如一个学生查找“八年级(上)生物学试题”为学段(年级)、学科和资源类型的组合。最常见的主题描述信息是学科内知识点、语文课文标题等,常见的类别限制信息是学科、学段(或年级)、资源类型。总体上,用户使用通用搜索引擎获取基础教育资源存在的问题可归为以下两个方面:教育资源的关键词不能被搜索引擎正确识别,导致检索结果的信息杂乱与过量,即使搜索出来也与可能是与教育无关的资源信息。由于在通过关键词检索方式中,关键词与类别词的混杂使用导致信息准确度较低。往往要搜索的信息排序靠后或漏检。1.2教育资源搜索存在的问题根据以上分析,用户获取网上教育资源主要存在以下问题:1、信息过量。网上资源内容广泛,通用搜索引擎返回的大量信息过多过杂,专业性不强.使用户淹没在海量信息里,筛选信息需要耗费大量的精力。2、信息准确度低。由于通用搜索引擎强调通用性,检索范围广,对资源没有筛选分类,资源索引库十分庞杂,很难满足特定用户群的特定需求。3、信息服务缺乏针对性,缺少用户交互。通用搜索引擎检索结果完全依赖于用户的关键词,即对于不同的用户,同一个关键词返回的结果相同,没有与用户联系起来,难以满足用户的个性化需求。1.3本文主要工作本人通过对现有教育领域搜索引擎的技术分析,结合问卷抽样调查反馈,对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,定义了本系统的功能和性能需求,在对Hadoop平台的框架研究基础之上,提出了基于Hadoop平台的MDVSP(Multi-tierDistributedVerticalSearchingPlatform)模型,详细阐述了MDVSP系统在设计和实现过程中应用到的一些关键技术,并基于该模型实现了MDVSP原型。本文的工作包括:提出了基于Hadoop平台的教育资源垂直搜索系统(MDVSP)模型。包括切合本系统的分布式的集群整体框架和HDFS存放结构。阐述了MDVSP中应用的关键技术,包括聚焦蜘蛛的原理和爬行算法。设计了Map/Reduce的逻辑结构和数据流。设计和封装了RPC远程调用协议。给出了设计思想和数据表示设计。设计了MDVSP的HA。包括框架、原理和详细实现。以JAVA和PERL为工具实现了MDVSP系统原型。最后对全文的内容进行了总结,分析了系统现有的不足,并提出了进一步完善的目标和基本方法。1.4本文的组织结构本论文共分为七章,各章内容具体安排如下:第一章绪论。主要论述课题的研究背景,垂直搜索引擎发展现状、存在的问题。第二章Hadoop平台架构。介绍Hadoop的概念和Hadoop的优点,Hadoop平台架构。第三章MDVSP平台需求分析。给出MDVSP平台的使用用户群,并基于抽样调查和多年的教育经验,对用户的需求进行鉴别、清除用户需求的模糊性、歧义性和不一致性,将原始问题的理解与软件开发经验结合,深入描述软件的功能和性能需求。第四章基于Hadoop平台的MDVSP模型。叙述基于Hadoop平台的教育资源垂直搜索模型(MDVSP),并阐述这种架构的优点,提出使用这种架构可以解决目前现有搜索平台在教育领域搜索中存在的一些问题。对MDVSP系统进行了逻辑结构设计和物理结构设计。第五章基于Hadoop平台的MDVSP的关键技术。阐述基于Hadoop平台模型下构建教育资源垂直搜索系统(MDVSP)中用到的关键技术。主要包括聚焦蜘蛛的爬行技术、基于Hadoop平台下Map/Reduce的逻辑结构和数据流设计和系统采用的MDVSP-RPC远程调用的封装技术。第六章MDVSP平台的实现。以JAVA和PERL为开发工具,通过Hadoop平台框架实现基于上述架构模型的MDVSP系统的各层设计,并列出相关功能的关键性JAVA和PERL代码。通过试验,并与有代表性的垂直搜索平台的搜索结果进行性能对比,分析MDVSP平台在教育资源领域的搜索效率和准确度都有所提高。第七章总结与展望。对本文的工作进行总结,并从系统功能和理论研究两个方面对以后的工作进行规划和展望。第二章Hadoop平台架构2.1Hadoop的产生自从Google工程师JeffreyDean提出MapReduce编程思想,MapReduce便在Google的各种Web应用中释放着魔力。然而,也许出于技术保密的目的,Google公司并没有透露其MapReduce的实现细节。幸运的是,DougCutting开发Hadoop作为MapReduce[5-6]开源实现,让MapReduce这么平易近人地走到了我们面前。2006年1月,DougCutting因其在开源项目Nutch和Lucene的卓越表现受邀加入Yahoo公司,专职在Hadoop项目上进行开发。现在,DougCutting已经加盟Cloudera(一家从事Hadoop产品商业化及技术支持的公司)。作为GoogleMapReduce技术的开源实现,Hadoop理所当然地借鉴了Google的GoogleFileSystem文件系统、MapReduce并行算法以及BigTable。因此,Hadoop也是一个能够分布式处理大规模海量数据的软件框架,这一点不足为奇。Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。Hadoop的高效性在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。Hadoop的可扩展性--依赖于部署Hadoop软件框架计算集群的规模,Hadoop的运算是可扩展的,具有处理PB级数据的能力。2.2基于Hadoop分布式架构的优势没有不好的工具,只用不适用的工具。本系统采用Hadoop分布式架构的目的有以下几个方面:可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。经济:框架可以运行在任何普通的PC上。可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。2.3Hadoop组件Hadoop是一个分布式计算基础架构这把"大伞"下的相关子项目的集合,其中最出名的是MapReduce及其分布式文件系统HDFS,还有其他子项目提供配套服务.如下:表2.1Hadoop组件PigChukwaHiveHBaseMapReduceHDFSZooKeeperCoreAvroCore:一系列分布式文件系统和通用I/O的组件和接口(序列化、JavaRPC和持久化数据结构。Avro:一种提供高效、跨语言RPC(RemoteProcedureCallProtocol)的数据序列系统,持久化数据存储。MapReduce:分布式数据处理模式和执行环境,运行于大型商用机集群。HDFS:(HadoopDistributedFileSystem)分布式文件系统,运行于大型商用机集群。Pig:一种数据流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS的集群上。HBase:一个分布式的、列存储数据库。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。ZooKeeper:一个分布式的、高可用性的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。Hive:分布式数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。Chukwa:分布式数据收集和分析系统。Chukwa[7-9]运行HDFS中存储数据的收集器,它使用MapReduce来生成报告。2.4本章小结本章重点介绍了Hadoop技术背景和基于HDFS分布式架构的优点,也指出了目前Hadoop版本的HDFS在功能上和性能上的一些不足之处,如名称节点的单点故障隐患。尽管HDFS目前仍然不尽完善,但是这些缺陷和不足之处不会影响到具体项目的成功实施。为了更好的应用Hadoop平台框架,对MDVSP系统中设计到的组件进行剖析。
第三章MDVSP平台需求分析当我要查找"高三物理试卷模拟考试",为什么百度,谷歌都出现了培训中心的广告?想要查找"小学三年级上学期课件",搜索结果出现了大量的招生广告……越来越多的教育工作者、学生发现百度和谷歌搜索平台,不容易使用了,想要获得自己想要的信息,需要大量的时间来筛选。今日,中国科学院研究生院管理学院副院长吕本富博士对此现象也给出了这样的结论:”从信息的匹配度上看,两家搜索引擎都不能满足用户完全需要”。造成这种现象的原因是什么呢?用一句话概括就是“网民多样化,需求多样化”。随着互联网普及程度的不断提高,网民由以前的IT专业人士扩大到不同职业,不同年龄的群体。而搜索引擎是仅次于网页一般性浏览、收发电子邮件的网民第三大基本需求,其需求自然随之也变得多样化。据赛迪网调查,有六成的网民认为面向某一领域的搜索引擎对其非常或比较重要,因此当大学毕业生有了例如论文、外文翻译、论文格式等某种特定需求时,他自然希望能够使用面向这些特定需求的搜索引擎。但这些需求的复杂性与多样性都是传统搜索引擎无法满足的。这就导致了搜索引擎市场上出现了这样的趋势。MDVSP垂直化搜索“专、精、深”等特点给教育行业工作者、学生带来了方便,MDVSP的定位很简单:以特定的信息服务提供给易用、简单且富有效率的信息。MDVSP不关注搜索信息的竞价排名的现状,所以MDVSP搜索引擎的在教育界的价值便突出出来。此外,由于针对特定行业的培训、考试、辅导教材等信息的分类,垂直化搜索与传统搜索相比显得更为“聪明”、更具人性化。3.1教育资源垂直搜索的用户群早在2003年的时候,江苏苏州教育界就构想“打造中小学校的教育信息资源共享平台“。MDVSP搜索平台的定位就是教育领域的幼稚园、小学、中学、大学、机构培训以及成人教育。图3.1给出了教育资源垂直搜索面向的用户群体。从图上可以看出用户的群体数量还是比较大的。在一定程度上解决了教学资源的资源共享[12]。图3.1MDVSP搜索平台使用对象3.2MDVSP搜索资源类型需求教育资源包括从事教育事业的人力资源、物力资源、和无形资源的总和。其中直接支持教学活动的数字文档各种资源被称为教学资源,它包括1.在教学过程中所使用和产生的教案、课堂用的幻灯片、课堂测试题、课件、动画、图形图像、音、视频以及各类测试、考试题;2.学生创作类资源和学习过程中产生的资源;3.教育管理与教学评估类的数据资源;4.教育科研过程所产生的资源;5.其他特色资源;图3.2给出了MDVSP搜索资源类型的图示,从图中我们可以看出,大部分的资源是由区域或者学校统一组织形成日常的资源上传机制[13]。图3.2MDVSP搜索资源类型3.3MDVSP搜索平台功能需求本搜索引擎是通过聚焦蜘蛛自动获取相关的教育资源并建立索引,为用户提供有效信息和相关服务的。起主要服务对象是被教育者和从事教育事业的工作者。根据问卷调查和访谈记录,MDVSP搜索引擎需要满足一下功能需求[14]:需要实现面向教学主体的网页信息检索功能。教学资源主题信息检索能保证返回信息的精确性,用户在检索信息的时候就不必面对成千上万条记录而产生心理负担。需要建立web2.0社区。这能缓解教学资源不平等的现象。由于地域的差异,教学水平、师资等都存在很大的差异,常常在教学过程中遇到问题,就迫切需要得到帮助解决。建立了社区,为用户寻求帮助提供了很好的渠道,也满足教育工作者之间的直接经验交流。需要定制个性化的信息。因为教学是有一定的时间周期的,所以常用教育资源垂直搜索引擎的用户在一定的时间内需要得到稳定的信息。需要存储保留一些用户的关注度等信息。需要满足教学资源的视频搜索。有很多教学资源是以视频、音频的方式存在的,如果公开课视频,优秀教师示范课视频,还有很多的动画资源等。需要能提供上传资源的功能。MDVSP获取资源的方式,一方面由聚焦蜘蛛爬行[11]获得,一方面是由广大的用户群体上传。用户上传的资源具有针对性,专业性强、易分类管理,是提高MDVSP搜索平台准确性的重要保证。3.4本章小结本章节深入描述MDVSP软件的功能和性能需求。本章节是MDVSP系统平台实现的基础。它以问卷调查和从事教育事业的经验积累出发点,分析了MDVSP面向的用户群体,以及按照不同的群体有着不同的搜索兴趣点。最后归纳总结了系统平台的功能需求。
第四章基于Hadoop平台的MDVSP模型4.1分布式文件系统HDFS与Map/Reduce技术Hadoop文件系统(HDFS)是一个运行在普通的硬件上的分布式文件系统,HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS大数据集的应用程序。图4.1是HDFS的体系结构。图4.1HDFS体系架构由图4.1可知,Client可以对DataNode进行读和写操作,同时在NameNode上对元数据进行操作。NameNode上元数据控制DataNode信息。Map/Reduce算法模型是Google的一项重要技术,它是一种编程模式,用以进行大数据量的计算。很多开发人员对并行计算比较陌生,再涉及到分布式处理就更加棘手。Map/Reduce算法模型就是一种简化并行计算的编程模型,它向上层用户提供接口,屏蔽了并行计算特别是分布式处理的诸多细节问题,让那些没有多少并行计算经验的开发人员也可以很方便的开发并行应用,避免了很多重复工作。这也就是Map/Reduce算法模型的价值所在,通过简化编程模型,降低了开发并行应用的入门门槛,并且能大大减轻了程序员在开发大规模数据的应用时的编程负担。4.1.1分布式文件系统HDFS名字节点与数据节点HDFS是一个主从结构的体系,一个HDFS集群是由一个名字节点,它是一个管理文件的命名空间和调节客户端访问文件的主服务器,当然还有的数据节点,一个节点一个,它来管理存储。HDFS暴露文件命名空间和允许用户数据存储成文件。内部机制是将一个文件分割成一个或多个的块,这些块存储在一组数据节点中。名字节点操作文件命名空间的文件或目录操作,如打开,关闭,重命名,等等。它同时确定块与数据节点的映射。数据节点来负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指示。名字节点和数据节点都是软件运行在普通的机器之上,机器典型的都是linux,HDFS是用java来写的,任何支持java的机器都可以运行名字节点或数据节点,利用java语言的超轻便型,很容易将HDFS部署到大范围的机器上。典型的部署时将有一个专门的机器来运行名字节点软件,机群中的其他机器运行一个数据节点实例。体系结构排斥在一个机器上运行多个数据节点的实例,但是实际的部署不会有这种情况。集群中只有一个名字节点极大地简单化了系统的体系。名字节点是仲裁者和所有HDFS的元数据的仓库。系统设计成用户的实际数据不经过名字节点。系统设计成用户的实际数据不经过名字节点。数据节点是负责存储。一般一台机器上面部属一个数据节点,有时也会把几个数据节点部属在一台机器上,但这种情况不是很常见。这些机器一般都是普通的PC机。PC机上一般是GUN/Linux操作系统,HDFS是用Java来写的,任何支持Java的机器都可以运行名字节点或数据节点,利用Java语言的超轻便型,很容易将HDFS部署到大范围的机群上[16-17]。数据复制HDFS被设计成在一个大集群中可以跨机器地可靠地存储海量的文件。它将每个文件存储成block序列,除了最后一个block,所有的block都是同样的大小。文件的所有block为了容错都会被复制。每个文件的block大小和replication因子都是可配置的。Replication因子可以在文件创建的时候配置,以后也可以改变。HDFS中的文件是write-one,并且严格要求在任何时候只有一个writer。Namenode全权管理block的复制,它周期性地从集群中的每个Datanode接收心跳包和一个Blockreport。心跳包的接收表示该Datanode节点正常工作,而Blockreport包括了该Datanode上所有的block组成的列表。1、副本的存放副本的存放是HDFS可靠性和性能的关键。HDFS采用一种称为rack-aware的策略来改进数据的可靠性、有效性和网络带宽的利用。这个策略实现的短期目标是验证在生产环境下的表现,观察它的行为,构建测试和研究的基础,以便实现更先进的策略。庞大的HDFS实例一般运行在多个机架的计算机形成的集群上,不同机架间的两台机器的通讯需要通过交换机,显然通常情况下,同一个机架内的两个节点间的带宽会比不同机架间的两台机器的带宽大。通过一个称为RackAwareness的过程,Namenode决定了每个Datanode所属的rackid。一个简单但没有优化的策略就是将副本存放在单独的机架上。这样可以防止整个机架(非副本存放)失效的情况,并且允许读数据的时候可以从多个机架读取。这个简单策略设置可以将副本分布在集群中,有利于组件失败情况下的负载均衡。但是,这个简单策略加大了写的代价,因为一个写操作需要传输block到多个机架。在大多数情况下,replication因子是3,HDFS的存放策略是将一个副本存放在本地机架上的节点,一个副本放在同一机架上的另一个节点,最后一个副本放在不同机架上的一个节点。机架的错误远远比节点的错误少,这个策略不会影响到数据的可靠性和有效性。三分之一的副本在一个节点上,三分之二在一个机架上,其他保存在剩下的机架中,这一策略改进了写的性能。2、副本的选择为了降低整体的带宽消耗和读延时,HDFS会尽量让reader读最近的副本。如果在reader的同一个机架上有一个副本,那么就读该副本。如果一个HDFS集群跨越多个数据中心,那么reader也将首先尝试读本地数据中心的副本。3、SafeModeNamenode启动后会进入一个称为SafeMode的特殊状态,处在这个状态的Namenode是不会进行数据块的复制的。Namenode从所有的Datanode接收心跳包和Blockreport。Blockreport包括了某个Datanode所有的数据块列表。每个block都有指定的最小数目的副本。当Namenode检测确认某个Datanode的数据块副本的最小数目,那么该Datanode就会被认为是安全的;如果一定百分比(这个参数可配置)的数据块检测确认是安全的,那么Namenode将退出SafeMode状态,接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些block复制到其他Datanode。数据组织HDFS支持海量文件处理。应用程序可以处理大数据集。这些程序一次写入数据多次读取,因此需要一个比较好的流读取速度。HDFS典型的块大小是64M,一个HDFS文件可以最多被切分成128MB个块,每一个块分布在不同的数据节点上。客户端请求创建文件时,并不立即请求名字节点。HDFS客户端在本地的文件中缓存文件数据,应用程序将数据写到这个临时的本地文件。当本地文件堆积到大于HDFS块大小的时候,客户端联系名字节点。名字节点插入文件名到文件系统层次当中,然后分配一个数据块。名字节点把请求包括数据节点(可能多个)的标识和目标数据块反馈给客户端,客户端再将本地的临时文件转移到数掘节点数据块中。当文件关闭,还有一些没有刷新的本地临时文件也被传递到数据节点。客户端随后通知名字节点,这个文件已经关闭。假如名字节点在文件关闭之前死掉,文件就会丢失[18-2]。1、数据块兼容HDFS的应用都是处理大数据集合的。这些应用都是写数据一次,读却是一次到多次,并且读的速度要满足流式读。HDFS支持文件的write-once-read-many语义。一个典型的block大小是64MB,因而,文件总是按照64M切分成chunk,每个chunk存储于不同的Datanode。2、步骤某个客户端创建文件的请求其实并没有立即发给Namenode,事实上,HDFS客户端会将文件数据缓存到本地的一个临时文件。应用的写被透明地重定向到这个临时文件。当这个临时文件累积的数据超过一个block的大小(默认64M),客户端才会联系Namenode。Namenode将文件名插入文件系统的层次结构中,并且分配一个数据块给它,然后返回Datanode的标识符和目标数据块给客户端。客户端将本地临时文件flush到指定的Datanode上。当文件关闭时,在临时文件中剩余的没有flush的数据也会传输到指定的Datanode,然后客户端告诉Namenode文件已经关闭。此时Namenode才将文件创建操作提交到持久存储。如果Namenode在文件关闭前挂了,该文件将丢失[18-20]。上述方法是对通过对HDFS上运行的目标应用认真考虑的结果。如果不采用客户端缓存,由于网络速度和网络堵塞会对吞估量造成比较大的影响。3、流水线复制当某个客户端向HDFS文件写数据的时候,一开始是写入本地临时文件,假设该文件的replication因子设置为3,那么客户端会从Namenode获取一张Datanode列表来存放副本。然后客户端开始向第一个Datanode传输数据,第一个Datanode一小部分一小部分(4kb)地接收数据,将每个部分写入本地仓库,并且同时传输该部分到第二个Datanode节点。第二个Datanode也是这样,边收边传,一小部分一小部分地收,存储在本地仓库,同时传给第三个Datanode,第三个Datanode就仅仅是接收并存储了。这就是流水线式的复制。4.1.2Map/Reduce技术主要操作实现Map操作Map操作是并行的,所以输入文件先被划分为几个“文件片断"。如果单个文件的大小达到了影响搜索时间的程度,这个文件也会被划分为几个“片段”。在文件划分的时候并不考虑输入文件的内部逻辑结构,例如一个按行记录的文本文件也会被按照二进制字节数大小进行片段划分。然后,每个“文件片段”会对应的创建一个新的Map任务。当一个单独的Map任务开始时,对应的都会按照每个Reduce任务配置输出文件写操作者。然后Map任务会使用从指定的lnputFormat类获得的ReeordReader类来读取它的FileSplit属性。InputFormat类负责解析输入和生成Key/Value对。InputFormat也需要处理达到FileSplit边界值的记录。例如TextlnputFormat会读取超过分割边界值的FileSplit的最后一行,当读到其他的非第一个FileSplit时,TextlnputFormat会忽略第一个新行以上部分的内容。对于InputFormat类来说,没有必要同时产生有意义的索引键和值。例如TextlnputFormat的默认输出包含以输入行为值以及以毫无意义的行在文件中的偏移量为索引键的内容。绝大多数的应用仅仅使用行的内容而忽略行在文件中的偏移量。N个输入文件会产生M个待运行的Map任务,每个Map任务都会产生由系统配置好的规约任务数量相同的输出文件。每个输出文件对应一个规约任务,所有Map对象的输出键值对都会被路由以保证每一个给定的索引键的所有键值对会最终出现在指定的一个Reduce任务中。Combine操作当Map操作输出了它的Key/Value对后就会驻留在内存中。由于效率的原因,有时需要充分利用这个事实的优点去提供一个执行规约类型功能的Combiner类。如果使用了一个Combiner类,则映射过程产生的Key/Value对就不会立刻写到输出。与此相反的是,输出会先被收集到列表,每个索引键对应一个列表。当一定数量的键值对被写入时,这个缓冲区里的所有键值对会被清空转移到Combiner类的Reduce方法中,然后将合并操作产生的键值对像原有的Map操作一样输出。Reduce操作当一个Reduce任务开始时,它的输入来源于分散在多个节点上的Map任务所产生的许多文件。如果Reduce过程是运行在分布式模式下的话,需要在拷贝阶段先将这些文件拷贝到Reduce任务所在节点的本地文件系统。一旦本地数据准备就绪所有的数据都会以追加到文件最后。然后这个文件会被归并排序以保证给定一个索引键。这使得实际的Reduce操作非常简单:文件被顺序读入然后输入文件中的一个索引键的所有对应值会被一个迭代器顺次传递给Reduce方法直到下一个索引键开始。最后,每个执行的Reduce任务的输出都会包含一个输出文件。输出文件的格式由JobConf.setOutputFormat方法来指定。如果使用了SequentialOutputFormat类,则输出索引键和索引键对应值得类型都必须指定[21-24]。Map/Reduce执行流程Map/Reduce的系统执行流程如图4.2所示,从数据流的角度展示了Map/Reduce算法模型。下面详细讲解一下每一个步骤的作用:图4.2操作流程图分割文件(fork)首先,将众多文件分成大小不等的若干小块数据,数据块大小由用户给定参数控制,然后启动机器集群中的众多程序拷贝。指派Map/Reduce任务在众多程序拷贝中有一个管理机(master)的主程序,其他的均为工作站(worker)程序,工作站程序有管理机指派任务。主程序指派空闲的工作站程序执行Map任务或是Reduce任务。读取(read)被指派执行Map任务的工作站读取相关的数据块,从原始数据中解析出Key/Value对,经过Map函数处理,得到中问键值时,存入内存缓冲区。本地写A,(10calwrite)内存中的数据组被划分函数周期性的划分到R个区域写入本地磁盘。这些在本地磁盘的数据数列的存放位置信息被送回管理机,管理机负责将这些位置信息传送到执行Reduce任务的工作站。远程读取(remoteread)当执行Reduce任务的工作站被告知这些数据的位置,它通过远程方式读耿执行Map任务的工作站中的本地缓冲数据。Reduce工作站读取完所有中问数据后,通过中问关键字对数据进行排列,把具有相同关键字的数据分为一类。排序操作是必须的,因为具有不同的关键字Map后会进行相同的Reduce操作。如果中间数据的数量太大不适合存入内存,就启用外部存储。写到输出文件(write)Reduce工作站对每一个由唯一的中间关键字对应的中间数据进行排列,它发送关键字和相对应的中间值给用户的Reduce函数。Reduce函数的输出结果将被添加到最后的输出文件中。当所有的Map任务和Reduce任务都已经完成了的时候,Master激活用户程序。在这时候Map/Reduce返回用户程序的调用点。4.2基于Hadoop的MDVSP平台的多层分布式架构4.2.1系统体系结构图4.3系统结构框图在前面理论分析的基础上我们可以得出,对于本系统我们可以采用B/S结构比较好。如图4.3所示,在Browser/Server三层体系结构下,表示层、逻辑层、数据存储层被分割成三个相对独立的单元,有效地实现了数据存储、功能逻辑与用户使用界面的分离,并真正实现了显示、计算、数据的分离。如此设计可以大以大大减轻网站服务器的网站,而且使他们之间互相不影响,既较好兼顾了用户的查询效率,同时也可以专门设计网页的采集与分析时间,保证系统的工作效率和利用率。表示层:表示层用于生成用户访问的Web页面,该层是用来实现系统与用户的一个人机接口。逻辑层:这一层是非常重要也是非常关键的一层,因为他是真正意义上实现用户层与数据存储计算的纽带。在这一层里我们利用相应的代码实现前面设计好的一些关键算法。所以说该层的设计是实现系统健壮性、可重用性、可扩展性和可维护性的关键因素。数据存储计算层:该层的实现是由Hadoop平台实现。存储数据库选用Hadoop组件中的HBase,由图4.3中我们可以看出该层主要是负责存储整个搜索引擎的底层结构化数据,数据存储层主要包括两个大规模的数据库,一是面向爬虫所得页面与抽取信息的写入,二是面向客户查询的信息的读取。在Hadoop平台中我们选择多个数据节点即DataNode,用于提高存储Capacity和计算效率。4.2.2MDVSP平台数据处理模型整体框架因为MDVSP是基于Internet的B/S结构的Web服务,而且采用了多层结构来设计,所以这就决定了数据处理模型相对较复杂,如图4.4所示。图4.4数据处理模型框架数据处理模型中所有的业务计算都在Hadoop平台上,利用Map/Reduce技术计算,查询用户数据、更新聚焦爬虫数据。用户上传的视频、音频等数据存放在存储设备中。为了提高用户的访问速度,在Web服务器前端假设了负载均衡设备,提高Webserver的吞吐能力。基于Hadoop平台的业务数据并行计算,将在后面章节详细展开论述。4.2.3MDVSP平台数据在HDFS中存放结构为了让用户自己上传的数据能快速、准确查询到,我们把爬虫的数据与用户上传的数据分开。用户上传数据的优先级大于爬虫优先级,客户端查询的时候返回结果也采用相同的处理优先级,见图4.5图4.5数据存放目录结构4.3MDVSP通信数据模型设计4.3.1从前面提到的可以看出Hbase分布式数据库数据存储具有一定的哈希性质,非常适合处理Key/Value类型的数据,以及结构稀疏的大规模数据。但它不适合于处理关系型很强的结构化数据,因为它本身并不是完全的关系型数据。Hbase本身不保证数据的一致性,提供的查询机制也比较简单。但是Hbase在大规模数据(TB级)的存储和处理方面上有独特的优势。它不建议用户经常修改数据。“一次写入,多次读取”是Hbase数据库最大的特色。而这种特色正好满足分析系统的要求。聚焦爬虫每天都会获取庞大的数据量,以单台爬虫服务器单线程为例,每天至少30G的数据量,如果多台爬虫服务器并行,那么数据量有肯能达到TB级别。数据查询或者数据传输任何一个地方存在瓶颈就会造成分析结果的低效或者失败。在设计系统数据模型之前,我们先分析一下MDVSP业务处理的需求。爬虫数据经过主题过滤、分类后的格式主要包括:TraceID:爬行后产生的唯一ID号。Type:爬行数据的类型,这个决定了后台服务器如何处理爬行到的原始数据。URL:记录原始数据的位置[25-26]。4.3.2Hbase是一个稀疏的,排序的,长期存储在硬盘上的,多维度的,映射表。这张表的索引是行关键字,列关键字和时间戳。每个值是一个不解释的字符数组,数据都是字符串。用户在表格中存储数据,每一行都有一个可排序的主键和任意多的列。由于是稀疏存储的,所以同一张表的每一行数据都可以有截然不同的列。列名字的格式是”<family>:<label>”,都是由字符串组成,每一张表有一个family集合,这个集合是固定不变的,相当于表的结构,只能通过改变表结构来改变。但是label值相对于每一行来说都是可以改变的。先看一下Hbase的逻辑模型:表4.1Hbase逻辑模型RowKeyTimestampColumn“C1”Column”C2”Column”C3”Time3“C1-Content1”C2:L1ContentC3:N1ContentTime2“C1-Content2”C2:L2ContentC3:N2ContentTime1“C1-Content3”C2:L3ContentC3:N3Content上表4.1共有一行,行标识是rowkey。每一次的逻辑修改都会有一个Timestamp关联对应。一共有4个列定义,分别是<C1:>,<C2:LI>,<C2:L2>,<C3:>。所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本,而Hbase会保留一定数量的版本,这个值是可以设定的。客户端可以选择获取距离某个时间最近的版本,或者一次获取所有版本。虽然从概念视图来看每个表格是由很多行组成,但是在物理存储上面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘教版2026年初中化学元素周期律测验试卷及答案
- 2025年河北机关事业单位工人技能等级考试(农艺工-初级)历年参考题库及答案
- 2025年云计算运维工程师多云混合云管理考核试卷及答案
- 2025年人力资源管理师(初级)考试真题模拟卷及答案解析
- 燃气泄漏、火灾爆炸事故现场处置方案和脚本
- 2025二级建造师《机电实务》真题及答案解析【完整版】
- (完整版)水泥稳定土施工方案
- 旅游行业信息技术应用测试试卷及答案
- 2025年注册公用设备工程师(动力)专业考试试题及答案
- 2026年初中数学解题技巧与方法精讲试卷及答案
- 中国诗词大赛笔试题库附答案
- 电厂安全培训课件
- 2026北京朝阳初二上学期期末数学试卷和答案
- 语文中考干货 11 非连续性文本阅读
- 二次配安全培训课件
- 【生 物】八年级上册生物期末复习 课件 -2025-2026学年人教版生物八年级上册
- 阿仑膦酸钠片课件
- 省考临夏州面试题目及答案
- (新版)钻井液工(高级)职业技能考试题库(附答案)
- 2024年安徽省考公务员财会专业考试真题
- 2025年护士心电图大赛题库及答案
评论
0/150
提交评论