基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第1頁
基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第2頁
基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第3頁
基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第4頁
基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

分類號 密級UDC 編號學(xué)位論文基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ImplementationofEducationResourceVerticalSearchingSystemBasedonHadoop分類號:密級:UDC:編號:學(xué)位論文基于Hadoop平臺的教育資源垂直搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ImplementationofEducationResourceVerticalSearchingSystemBasedonHadoop學(xué)科專業(yè):計(jì)算機(jī)應(yīng)用技術(shù)計(jì)算機(jī)科學(xué)與通信工程學(xué)院2011年04月江蘇大學(xué)工程碩士學(xué)位論文PAGEI學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)江蘇大學(xué)可以將本學(xué)位論文的全部內(nèi)容或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。保密 ,在年解密后適用本授權(quán)書。本學(xué)位論文屬于不保密 。學(xué)位論文作者簽名:指導(dǎo)教師簽名:年月日年月日畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人或集體,均已在文中作了明確的說明并表示了謝意。作者簽名:日期:指導(dǎo)教師簽名:日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)校可以采用影印、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)校可以公布論文的部分或全部內(nèi)容。作者簽名:日期:

學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名: 日期:年月日導(dǎo)師簽名:日期:年月日指導(dǎo)教師評閱書指導(dǎo)教師評價:一、撰寫(設(shè)計(jì))過程1、學(xué)生在論文(設(shè)計(jì))過程中的治學(xué)態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學(xué)生掌握專業(yè)知識、技能的扎實(shí)程度□優(yōu)□良□中□及格□不及格3、學(xué)生綜合運(yùn)用所學(xué)知識和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計(jì)方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設(shè)計(jì))期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)指導(dǎo)教師:(簽名)單位:(蓋章)年月日評閱教師評閱書評閱教師評價:一、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)評閱教師:(簽名)單位:(蓋章)年月日江蘇大學(xué)碩士研究生畢業(yè)論文PAGEVI教研室(或答辯小組)及教學(xué)系意見教研室(或答辯小組)評價:一、答辯過程1、畢業(yè)論文(設(shè)計(jì))的基本要點(diǎn)和見解的敘述情況□優(yōu)□良□中□及格□不及格2、對答辯問題的反應(yīng)、理解、表達(dá)情況□優(yōu)□良□中□及格□不及格3、學(xué)生答辯過程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格評定成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)教研室主任(或答辯小組組長):(簽名)年月日教學(xué)系意見:系主任:(簽名)年月日摘要互聯(lián)網(wǎng)的出現(xiàn)改變了我們的生活、工作、學(xué)習(xí)乃至娛樂的方式。網(wǎng)上豐富的基礎(chǔ)教育資源為廣大基礎(chǔ)教育工作者、學(xué)生以及學(xué)生家長提供了充足的參考資料和教育信息,然而由于缺乏行之有效的整合標(biāo)準(zhǔn)和手段,目前這些資源的分布呈現(xiàn)高度分散狀態(tài),內(nèi)容龐雜無序,結(jié)構(gòu)化程度低,用戶往往難以快速準(zhǔn)確地獲取到自己需要的信息。所以我們必須研究和設(shè)計(jì)出針對教育資源搜索的網(wǎng)絡(luò)平臺,以提高用戶獲取教育資源信息的速度和準(zhǔn)確度。本文通過對現(xiàn)有的互聯(lián)網(wǎng)搜索平臺的分析,借鑒其他應(yīng)用領(lǐng)域的垂直搜索平臺所采用的架構(gòu)和設(shè)計(jì)方法,通過使用Hadoop平臺的分層分布的架構(gòu)和聚焦蜘蛛的爬行技術(shù),提出基于Hadoop平臺的B/S多層分布式架構(gòu)系統(tǒng)模型,給出提高搜索運(yùn)行效率的若干關(guān)鍵技術(shù),并基于該架構(gòu)的設(shè)計(jì)實(shí)現(xiàn)了系統(tǒng)。本文的主要工作包括:(1)通過對Hadoop平臺的基本原理和架構(gòu)以及Hadoop平臺的兩個核心組件HDFS與Map/Reduce的分析,選擇Hbase對系統(tǒng)的數(shù)據(jù)進(jìn)行管理,并對可視化系統(tǒng)的Hbase數(shù)據(jù)模型的設(shè)計(jì)以及條件查詢的改進(jìn)進(jìn)行闡述。(2)基于抽樣調(diào)查和教育經(jīng)驗(yàn),進(jìn)行MDVSP的軟件需求分析,設(shè)計(jì)基于Hadoop平臺的教育資源垂直搜索(MDVSP)架構(gòu)模型。該架構(gòu)模型把業(yè)務(wù)處理服務(wù)器與Web服務(wù)器分開,采用并行計(jì)算提高業(yè)務(wù)處理能力,使得基于該架構(gòu)模型下的系統(tǒng)具有良好的可伸縮性、可擴(kuò)展性、可維護(hù)性和更高的安全性。(3)研究基于Hadoop平臺的教育資源搜索系統(tǒng)所采用的關(guān)鍵技術(shù),包括聚焦蜘蛛的爬行技術(shù)、網(wǎng)頁信息結(jié)構(gòu)化提取技術(shù)、遠(yuǎn)程過程調(diào)用(RPC)技術(shù)、基于Hadoop的Map/Reduce技術(shù)和基于Hadoop的負(fù)載均衡技術(shù)。(4)以Hadoop為基礎(chǔ)架構(gòu),采用Java開發(fā)語言,設(shè)計(jì)并實(shí)現(xiàn)Hadoop平臺的教育資源搜索系統(tǒng)。經(jīng)過詳細(xì)的系統(tǒng)測試,系統(tǒng)在實(shí)現(xiàn)效率、搜索的準(zhǔn)確率和可擴(kuò)展性等方面較有代表性的垂直搜索平臺先進(jìn)。關(guān)鍵詞:垂直搜索引擎;Hadoop;網(wǎng)頁信息抽取;抽取規(guī)則;索引庫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江蘇大學(xué)碩士研究生畢業(yè)論文目錄第一章緒論 11.1課題研究背景及意義 11.1.1背景及意義 11.1.2目前現(xiàn)狀 11.2教育資源搜索存在的問題 21.3本文主要工作 31.4本文的組織結(jié)構(gòu) 3第二章Hadoop平臺架構(gòu) 52.1Hadoop的產(chǎn)生 52.2基于Hadoop分布式架構(gòu)的優(yōu)勢 52.3Hadoop組件 62.4本章小結(jié) 6第三章MDVSP平臺需求分析 83.1教育資源垂直搜索的用戶群 83.2MDVSP搜索資源類型需求 93.3MDVSP搜索平臺功能需求 103.4本章小結(jié) 11第四章基于HADOOP平臺的MDVSP模型 124.1分布式文件系統(tǒng)HDFS與Map/Reduce技術(shù) 124.1.1分布式文件系統(tǒng)HDFS 134.1.2Map/Reduce技術(shù) 164.2基于Hadoop的MDVSP平臺的多層分布式架構(gòu) 194.2.1系統(tǒng)體系結(jié)構(gòu) 194.2.2MDVSP平臺數(shù)據(jù)處理模型整體框架 204.2.3MDVSP平臺數(shù)據(jù)在HDFS中存放結(jié)構(gòu) 214.3MDVSP通信數(shù)據(jù)模型設(shè)計(jì) 214.3.1數(shù)據(jù)模型分析 214.3.2數(shù)據(jù)模型設(shè)計(jì) 224.3.3主表設(shè)計(jì) 234.4本章小結(jié) 25第五章基于Hadoop平臺的MDVSP的關(guān)鍵技術(shù) 275.1MDVSP中聚焦蜘蛛 275.1.1工作原理 275.1.2關(guān)鍵技術(shù) 285.2Map/Reduce設(shè)計(jì) 315.2.1Map/Reduce邏輯結(jié)構(gòu)設(shè)計(jì) 325.2.2Map/Reduce數(shù)據(jù)流設(shè)計(jì) 325.2.3容錯和可靠性設(shè)計(jì) 335.2.4任務(wù)粒度和backup任務(wù)性能優(yōu)化設(shè)計(jì) 345.3遠(yuǎn)程調(diào)用設(shè)計(jì) 355.3.1MDVSP采用的RPC遠(yuǎn)程調(diào)用設(shè)計(jì)思想 355.3.2MDVSP-RPC數(shù)據(jù)表示設(shè)計(jì) 365.3.3MDVSP-RPC服務(wù)器端的實(shí)現(xiàn) 385.3.4MDVSP-RPC客戶端的實(shí)現(xiàn) 385.4Hadoop的HA設(shè)計(jì) 395.4.1HealthCheck設(shè)計(jì) 405.4.2HadoopFailover流程設(shè)計(jì) 415.5本章小結(jié) 42第六章MDVSP平臺的實(shí)現(xiàn) 436.1方案部署 436.1.1硬件配置 446.1.2SSH公鑰認(rèn)證配置 446.1.3Hadoop平臺搭建 446.1.4Hbase平臺搭建 456.1.5與垂直搜索引擎結(jié)合 466.2開發(fā)平臺及其開發(fā)工具 476.2.1操作系統(tǒng) 476.2.2硬件平臺 476.2.3開發(fā)工具 476.3MDVSP系統(tǒng)的實(shí)現(xiàn) 486.3.1聚焦蜘蛛模塊的實(shí)現(xiàn) 486.3.2教育資源搜索結(jié)果 496.3.3教育資源信息自動抽取的實(shí)現(xiàn) 516.3.4Lucene倒排文件索引結(jié)構(gòu) 566.3.5教育資源信息的存儲實(shí)現(xiàn) 586.4用戶查詢功能的實(shí)現(xiàn) 586.4.1用戶查詢主要函數(shù)實(shí)現(xiàn) 586.4.2教育資源信息查詢 606.5運(yùn)行結(jié)果與對比 626.6本章小結(jié) 64第七章總結(jié)與展望 657.1總結(jié) 657.2展望 65參考文獻(xiàn) 67致謝 69第3章垂直搜索引擎的關(guān)鍵技術(shù)面向絲綢領(lǐng)域的垂直搜索引擎關(guān)鍵算法研究江蘇大學(xué)碩士研究生畢業(yè)論文―PAGE26―PAGE42第一章緒論1.1課題研究背景及意義1.1.1背景及意義隨著網(wǎng)絡(luò)與通信技術(shù)的迅速發(fā)展,Web信息爆炸性的增長,互聯(lián)網(wǎng)已經(jīng)成為一個巨大的海量信息空間。如何迅速、準(zhǔn)確、方便的從如此龐大的信息庫獲取自己需要的信息,是互聯(lián)網(wǎng)用戶面臨的一個重要問題。搜索引擎的出現(xiàn),整合了眾多網(wǎng)站信息,極快的查詢起到了信息導(dǎo)航的作用,信息的價值得到眾多商家的普遍認(rèn)可,成為互聯(lián)網(wǎng)中最有價值的領(lǐng)域。大家熟知的搜索引擎Google、百度、雅虎等都是搜索引擎的杰出代表,為互聯(lián)網(wǎng)的發(fā)展做出了重要的貢獻(xiàn)。我國互聯(lián)網(wǎng)絡(luò)信息中心CNNIC于2006年1月發(fā)布的《第17次中國互聯(lián)網(wǎng)絡(luò)發(fā)展統(tǒng)計(jì)報告》顯示:搜索引擎以65.7%的使用率成為第二大網(wǎng)絡(luò)服務(wù)[1]?;ヂ?lián)網(wǎng)的信息量呈爆炸趨勢增長,幾年前全球式搜索引擎收錄的網(wǎng)頁量只有幾千萬頁,而現(xiàn)在已經(jīng)達(dá)到幾十億頁,數(shù)量增加帶來的是搜索服務(wù)的品質(zhì)下降,查詢的結(jié)果集就是海量的,經(jīng)常是幾十萬筆的資料,結(jié)果里存在大量的重復(fù)信息和垃圾信息,用戶越來越難迅速找到符合的信息,現(xiàn)在經(jīng)常使用搜索引擎可以感覺到很難在短時間內(nèi)準(zhǔn)確的篩選出需要的內(nèi)容。因此,如何對通用搜索引擎技術(shù)進(jìn)行改進(jìn),使查詢的結(jié)果更加貼近用戶的要求,成為搜索引擎行業(yè)近期的研究熱點(diǎn)。對于基礎(chǔ)教育領(lǐng)域的廣大教師、學(xué)生、家長以及其他教育工作者,互聯(lián)網(wǎng)已經(jīng)成為他們獲取基礎(chǔ)教育資源和信息的重要工具,網(wǎng)上大量的試卷、教學(xué)研究論文、課件、課外閱讀材料、招生信息等基礎(chǔ)教育資源信息可以使教師提高自己的工作效率和水平,使學(xué)生擴(kuò)大自己的知識面,使家長掌握最新的教育信息。那么對教育資源用戶來講,目前的信息服務(wù)能否滿足他們的需求?他們更傾向于什么樣的信息服務(wù)形式?1.1.2目前現(xiàn)狀獲取基礎(chǔ)教育資源最常用的方式是搜索引擎[2]用戶獲取基礎(chǔ)教育資源的較經(jīng)常使用的方式為搜索引擎、學(xué)科專題網(wǎng)站、基礎(chǔ)教育綜合網(wǎng)站。其中使用最多的是搜索引擎。目前的搜索引擎還不能完全滿足用戶需求[2]綜合性通用搜索引擎在一定程度上方便了用戶查找利用網(wǎng)上信息,但由于它面向的是大眾,強(qiáng)調(diào)通用性,搜索結(jié)果中有很多雜亂信息,信息的準(zhǔn)確度較低,不能完全滿足基礎(chǔ)教育用戶的需求。傾向簡單的檢索方式[2]大多數(shù)人通常使用關(guān)鍵詞查詢,一部分人使用諸如“+(and)”、“-(or)”等檢索技巧,使用高級檢索的人很少,用合適的關(guān)鍵詞檢索是被所有用戶認(rèn)為是比較容易的,所有用戶都傾向于簡單易用的檢索方式。通常輸入的檢索內(nèi)容包含不同層次的信息大多數(shù)用戶輸入單個或多個關(guān)鍵詞,而多個關(guān)鍵詞的查詢往往包含有兩類信息——主題描述信息和資源的類別限制信息。比如說,一位教師輸入“《阿Q正傳》教案”,關(guān)鍵詞“阿Q正傳”是主題信息,關(guān)鍵詞“教案”,是類別限制信息,再如一個學(xué)生查找“八年級(上)生物學(xué)試題”為學(xué)段(年級)、學(xué)科和資源類型的組合。最常見的主題描述信息是學(xué)科內(nèi)知識點(diǎn)、語文課文標(biāo)題等,常見的類別限制信息是學(xué)科、學(xué)段(或年級)、資源類型??傮w上,用戶使用通用搜索引擎獲取基礎(chǔ)教育資源存在的問題可歸為以下兩個方面:教育資源的關(guān)鍵詞不能被搜索引擎正確識別,導(dǎo)致檢索結(jié)果的信息雜亂與過量,即使搜索出來也與可能是與教育無關(guān)的資源信息。由于在通過關(guān)鍵詞檢索方式中,關(guān)鍵詞與類別詞的混雜使用導(dǎo)致信息準(zhǔn)確度較低。往往要搜索的信息排序靠后或漏檢。1.2教育資源搜索存在的問題根據(jù)以上分析,用戶獲取網(wǎng)上教育資源主要存在以下問題:1、信息過量。網(wǎng)上資源內(nèi)容廣泛,通用搜索引擎返回的大量信息過多過雜,專業(yè)性不強(qiáng).使用戶淹沒在海量信息里,篩選信息需要耗費(fèi)大量的精力。2、信息準(zhǔn)確度低。由于通用搜索引擎強(qiáng)調(diào)通用性,檢索范圍廣,對資源沒有篩選分類,資源索引庫十分龐雜,很難滿足特定用戶群的特定需求。3、信息服務(wù)缺乏針對性,缺少用戶交互。通用搜索引擎檢索結(jié)果完全依賴于用戶的關(guān)鍵詞,即對于不同的用戶,同一個關(guān)鍵詞返回的結(jié)果相同,沒有與用戶聯(lián)系起來,難以滿足用戶的個性化需求。1.3本文主要工作本人通過對現(xiàn)有教育領(lǐng)域搜索引擎的技術(shù)分析,結(jié)合問卷抽樣調(diào)查反饋,對用戶的需求進(jìn)行鑒別、綜合和建模,清除用戶需求的模糊性、歧義性和不一致性,定義了本系統(tǒng)的功能和性能需求,在對Hadoop平臺的框架研究基礎(chǔ)之上,提出了基于Hadoop平臺的MDVSP(Multi-tierDistributedVerticalSearchingPlatform)模型,詳細(xì)闡述了MDVSP系統(tǒng)在設(shè)計(jì)和實(shí)現(xiàn)過程中應(yīng)用到的一些關(guān)鍵技術(shù),并基于該模型實(shí)現(xiàn)了MDVSP原型。本文的工作包括:提出了基于Hadoop平臺的教育資源垂直搜索系統(tǒng)(MDVSP)模型。包括切合本系統(tǒng)的分布式的集群整體框架和HDFS存放結(jié)構(gòu)。闡述了MDVSP中應(yīng)用的關(guān)鍵技術(shù),包括聚焦蜘蛛的原理和爬行算法。設(shè)計(jì)了Map/Reduce的邏輯結(jié)構(gòu)和數(shù)據(jù)流。設(shè)計(jì)和封裝了RPC遠(yuǎn)程調(diào)用協(xié)議。給出了設(shè)計(jì)思想和數(shù)據(jù)表示設(shè)計(jì)。設(shè)計(jì)了MDVSP的HA。包括框架、原理和詳細(xì)實(shí)現(xiàn)。以JAVA和PERL為工具實(shí)現(xiàn)了MDVSP系統(tǒng)原型。最后對全文的內(nèi)容進(jìn)行了總結(jié),分析了系統(tǒng)現(xiàn)有的不足,并提出了進(jìn)一步完善的目標(biāo)和基本方法。1.4本文的組織結(jié)構(gòu)本論文共分為七章,各章內(nèi)容具體安排如下:第一章緒論。主要論述課題的研究背景,垂直搜索引擎發(fā)展現(xiàn)狀、存在的問題。第二章Hadoop平臺架構(gòu)。介紹Hadoop的概念和Hadoop的優(yōu)點(diǎn),Hadoop平臺架構(gòu)。第三章MDVSP平臺需求分析。給出MDVSP平臺的使用用戶群,并基于抽樣調(diào)查和多年的教育經(jīng)驗(yàn),對用戶的需求進(jìn)行鑒別、清除用戶需求的模糊性、歧義性和不一致性,將原始問題的理解與軟件開發(fā)經(jīng)驗(yàn)結(jié)合,深入描述軟件的功能和性能需求。第四章基于Hadoop平臺的MDVSP模型。敘述基于Hadoop平臺的教育資源垂直搜索模型(MDVSP),并闡述這種架構(gòu)的優(yōu)點(diǎn),提出使用這種架構(gòu)可以解決目前現(xiàn)有搜索平臺在教育領(lǐng)域搜索中存在的一些問題。對MDVSP系統(tǒng)進(jìn)行了邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)。第五章基于Hadoop平臺的MDVSP的關(guān)鍵技術(shù)。闡述基于Hadoop平臺模型下構(gòu)建教育資源垂直搜索系統(tǒng)(MDVSP)中用到的關(guān)鍵技術(shù)。主要包括聚焦蜘蛛的爬行技術(shù)、基于Hadoop平臺下Map/Reduce的邏輯結(jié)構(gòu)和數(shù)據(jù)流設(shè)計(jì)和系統(tǒng)采用的MDVSP-RPC遠(yuǎn)程調(diào)用的封裝技術(shù)。第六章MDVSP平臺的實(shí)現(xiàn)。以JAVA和PERL為開發(fā)工具,通過Hadoop平臺框架實(shí)現(xiàn)基于上述架構(gòu)模型的MDVSP系統(tǒng)的各層設(shè)計(jì),并列出相關(guān)功能的關(guān)鍵性JAVA和PERL代碼。通過試驗(yàn),并與有代表性的垂直搜索平臺的搜索結(jié)果進(jìn)行性能對比,分析MDVSP平臺在教育資源領(lǐng)域的搜索效率和準(zhǔn)確度都有所提高。第七章總結(jié)與展望。對本文的工作進(jìn)行總結(jié),并從系統(tǒng)功能和理論研究兩個方面對以后的工作進(jìn)行規(guī)劃和展望。第二章Hadoop平臺架構(gòu)2.1Hadoop的產(chǎn)生自從Google工程師JeffreyDean提出MapReduce編程思想,MapReduce便在Google的各種Web應(yīng)用中釋放著魔力。然而,也許出于技術(shù)保密的目的,Google公司并沒有透露其MapReduce的實(shí)現(xiàn)細(xì)節(jié)。幸運(yùn)的是,DougCutting開發(fā)Hadoop作為MapReduce[5-6]開源實(shí)現(xiàn),讓MapReduce這么平易近人地走到了我們面前。2006年1月,DougCutting因其在開源項(xiàng)目Nutch和Lucene的卓越表現(xiàn)受邀加入Yahoo公司,專職在Hadoop項(xiàng)目上進(jìn)行開發(fā)?,F(xiàn)在,DougCutting已經(jīng)加盟Cloudera(一家從事Hadoop產(chǎn)品商業(yè)化及技術(shù)支持的公司)。作為GoogleMapReduce技術(shù)的開源實(shí)現(xiàn),Hadoop理所當(dāng)然地借鑒了Google的GoogleFileSystem文件系統(tǒng)、MapReduce并行算法以及BigTable。因此,Hadoop也是一個能夠分布式處理大規(guī)模海量數(shù)據(jù)的軟件框架,這一點(diǎn)不足為奇。Hadoop假設(shè)計(jì)算元素和存儲會出現(xiàn)故障,因?yàn)樗S護(hù)多個工作數(shù)據(jù)副本,在出現(xiàn)故障時可以對失敗的節(jié)點(diǎn)重新分布處理。Hadoop的高效性在MapReduce的思想下,Hadoop是并行工作的,以加快任務(wù)處理速度。Hadoop的可擴(kuò)展性--依賴于部署Hadoop軟件框架計(jì)算集群的規(guī)模,Hadoop的運(yùn)算是可擴(kuò)展的,具有處理PB級數(shù)據(jù)的能力。2.2基于Hadoop分布式架構(gòu)的優(yōu)勢沒有不好的工具,只用不適用的工具。本系統(tǒng)采用Hadoop分布式架構(gòu)的目的有以下幾個方面:可擴(kuò)展:不論是存儲的可擴(kuò)展還是計(jì)算的可擴(kuò)展都是Hadoop的設(shè)計(jì)根本。經(jīng)濟(jì):框架可以運(yùn)行在任何普通的PC上。可靠:分布式文件系統(tǒng)的備份恢復(fù)機(jī)制以及MapReduce的任務(wù)監(jiān)控保證了分布式處理的可靠性。高效:分布式文件系統(tǒng)的高效數(shù)據(jù)交互實(shí)現(xiàn)以及MapReduce結(jié)合LocalData處理的模式,為高效處理海量的信息作了基礎(chǔ)準(zhǔn)備。2.3Hadoop組件Hadoop是一個分布式計(jì)算基礎(chǔ)架構(gòu)這把"大傘"下的相關(guān)子項(xiàng)目的集合,其中最出名的是MapReduce及其分布式文件系統(tǒng)HDFS,還有其他子項(xiàng)目提供配套服務(wù).如下:表2.1Hadoop組件PigChukwaHiveHBaseMapReduceHDFSZooKeeperCoreAvroCore:一系列分布式文件系統(tǒng)和通用I/O的組件和接口(序列化、JavaRPC和持久化數(shù)據(jù)結(jié)構(gòu)。Avro:一種提供高效、跨語言RPC(RemoteProcedureCallProtocol)的數(shù)據(jù)序列系統(tǒng),持久化數(shù)據(jù)存儲。MapReduce:分布式數(shù)據(jù)處理模式和執(zhí)行環(huán)境,運(yùn)行于大型商用機(jī)集群。HDFS:(HadoopDistributedFileSystem)分布式文件系統(tǒng),運(yùn)行于大型商用機(jī)集群。Pig:一種數(shù)據(jù)流語言和運(yùn)行環(huán)境,用以檢索非常大的數(shù)據(jù)集。Pig運(yùn)行在MapReduce和HDFS的集群上。HBase:一個分布式的、列存儲數(shù)據(jù)庫。HBase使用HDFS作為底層存儲,同時支持MapReduce的批量式計(jì)算和點(diǎn)查詢(隨機(jī)讀取)。ZooKeeper:一個分布式的、高可用性的協(xié)調(diào)服務(wù)。ZooKeeper提供分布式鎖之類的基本服務(wù)用于構(gòu)建分布式應(yīng)用。Hive:分布式數(shù)據(jù)倉庫。Hive管理HDFS中存儲的數(shù)據(jù),并提供基于SQL的查詢語言(由運(yùn)行時引擎翻譯成MapReduce作業(yè))用以查詢數(shù)據(jù)。Chukwa:分布式數(shù)據(jù)收集和分析系統(tǒng)。Chukwa[7-9]運(yùn)行HDFS中存儲數(shù)據(jù)的收集器,它使用MapReduce來生成報告。2.4本章小結(jié)本章重點(diǎn)介紹了Hadoop技術(shù)背景和基于HDFS分布式架構(gòu)的優(yōu)點(diǎn),也指出了目前Hadoop版本的HDFS在功能上和性能上的一些不足之處,如名稱節(jié)點(diǎn)的單點(diǎn)故障隱患。盡管HDFS目前仍然不盡完善,但是這些缺陷和不足之處不會影響到具體項(xiàng)目的成功實(shí)施。為了更好的應(yīng)用Hadoop平臺框架,對MDVSP系統(tǒng)中設(shè)計(jì)到的組件進(jìn)行剖析。

第三章MDVSP平臺需求分析當(dāng)我要查找"高三物理試卷模擬考試",為什么百度,谷歌都出現(xiàn)了培訓(xùn)中心的廣告?想要查找"小學(xué)三年級上學(xué)期課件",搜索結(jié)果出現(xiàn)了大量的招生廣告……越來越多的教育工作者、學(xué)生發(fā)現(xiàn)百度和谷歌搜索平臺,不容易使用了,想要獲得自己想要的信息,需要大量的時間來篩選。今日,中國科學(xué)院研究生院管理學(xué)院副院長呂本富博士對此現(xiàn)象也給出了這樣的結(jié)論:”從信息的匹配度上看,兩家搜索引擎都不能滿足用戶完全需要”。造成這種現(xiàn)象的原因是什么呢?用一句話概括就是“網(wǎng)民多樣化,需求多樣化”。隨著互聯(lián)網(wǎng)普及程度的不斷提高,網(wǎng)民由以前的IT專業(yè)人士擴(kuò)大到不同職業(yè),不同年齡的群體。而搜索引擎是僅次于網(wǎng)頁一般性瀏覽、收發(fā)電子郵件的網(wǎng)民第三大基本需求,其需求自然隨之也變得多樣化。據(jù)賽迪網(wǎng)調(diào)查,有六成的網(wǎng)民認(rèn)為面向某一領(lǐng)域的搜索引擎對其非?;虮容^重要,因此當(dāng)大學(xué)畢業(yè)生有了例如論文、外文翻譯、論文格式等某種特定需求時,他自然希望能夠使用面向這些特定需求的搜索引擎。但這些需求的復(fù)雜性與多樣性都是傳統(tǒng)搜索引擎無法滿足的。這就導(dǎo)致了搜索引擎市場上出現(xiàn)了這樣的趨勢。MDVSP垂直化搜索“專、精、深”等特點(diǎn)給教育行業(yè)工作者、學(xué)生帶來了方便,MDVSP的定位很簡單:以特定的信息服務(wù)提供給易用、簡單且富有效率的信息。MDVSP不關(guān)注搜索信息的競價排名的現(xiàn)狀,所以MDVSP搜索引擎的在教育界的價值便突出出來。此外,由于針對特定行業(yè)的培訓(xùn)、考試、輔導(dǎo)教材等信息的分類,垂直化搜索與傳統(tǒng)搜索相比顯得更為“聰明”、更具人性化。3.1教育資源垂直搜索的用戶群早在2003年的時候,江蘇蘇州教育界就構(gòu)想“打造中小學(xué)校的教育信息資源共享平臺“。MDVSP搜索平臺的定位就是教育領(lǐng)域的幼稚園、小學(xué)、中學(xué)、大學(xué)、機(jī)構(gòu)培訓(xùn)以及成人教育。圖3.1給出了教育資源垂直搜索面向的用戶群體。從圖上可以看出用戶的群體數(shù)量還是比較大的。在一定程度上解決了教學(xué)資源的資源共享[12]。圖3.1MDVSP搜索平臺使用對象3.2MDVSP搜索資源類型需求教育資源包括從事教育事業(yè)的人力資源、物力資源、和無形資源的總和。其中直接支持教學(xué)活動的數(shù)字文檔各種資源被稱為教學(xué)資源,它包括1.在教學(xué)過程中所使用和產(chǎn)生的教案、課堂用的幻燈片、課堂測試題、課件、動畫、圖形圖像、音、視頻以及各類測試、考試題;2.學(xué)生創(chuàng)作類資源和學(xué)習(xí)過程中產(chǎn)生的資源;3.教育管理與教學(xué)評估類的數(shù)據(jù)資源;4.教育科研過程所產(chǎn)生的資源;5.其他特色資源;圖3.2給出了MDVSP搜索資源類型的圖示,從圖中我們可以看出,大部分的資源是由區(qū)域或者學(xué)校統(tǒng)一組織形成日常的資源上傳機(jī)制[13]。圖3.2MDVSP搜索資源類型3.3MDVSP搜索平臺功能需求本搜索引擎是通過聚焦蜘蛛自動獲取相關(guān)的教育資源并建立索引,為用戶提供有效信息和相關(guān)服務(wù)的。起主要服務(wù)對象是被教育者和從事教育事業(yè)的工作者。根據(jù)問卷調(diào)查和訪談記錄,MDVSP搜索引擎需要滿足一下功能需求[14]:需要實(shí)現(xiàn)面向教學(xué)主體的網(wǎng)頁信息檢索功能。教學(xué)資源主題信息檢索能保證返回信息的精確性,用戶在檢索信息的時候就不必面對成千上萬條記錄而產(chǎn)生心理負(fù)擔(dān)。需要建立web2.0社區(qū)。這能緩解教學(xué)資源不平等的現(xiàn)象。由于地域的差異,教學(xué)水平、師資等都存在很大的差異,常常在教學(xué)過程中遇到問題,就迫切需要得到幫助解決。建立了社區(qū),為用戶尋求幫助提供了很好的渠道,也滿足教育工作者之間的直接經(jīng)驗(yàn)交流。需要定制個性化的信息。因?yàn)榻虒W(xué)是有一定的時間周期的,所以常用教育資源垂直搜索引擎的用戶在一定的時間內(nèi)需要得到穩(wěn)定的信息。需要存儲保留一些用戶的關(guān)注度等信息。需要滿足教學(xué)資源的視頻搜索。有很多教學(xué)資源是以視頻、音頻的方式存在的,如果公開課視頻,優(yōu)秀教師示范課視頻,還有很多的動畫資源等。需要能提供上傳資源的功能。MDVSP獲取資源的方式,一方面由聚焦蜘蛛爬行[11]獲得,一方面是由廣大的用戶群體上傳。用戶上傳的資源具有針對性,專業(yè)性強(qiáng)、易分類管理,是提高M(jìn)DVSP搜索平臺準(zhǔn)確性的重要保證。3.4本章小結(jié)本章節(jié)深入描述MDVSP軟件的功能和性能需求。本章節(jié)是MDVSP系統(tǒng)平臺實(shí)現(xiàn)的基礎(chǔ)。它以問卷調(diào)查和從事教育事業(yè)的經(jīng)驗(yàn)積累出發(fā)點(diǎn),分析了MDVSP面向的用戶群體,以及按照不同的群體有著不同的搜索興趣點(diǎn)。最后歸納總結(jié)了系統(tǒng)平臺的功能需求。

第四章基于Hadoop平臺的MDVSP模型4.1分布式文件系統(tǒng)HDFS與Map/Reduce技術(shù)Hadoop文件系統(tǒng)(HDFS)是一個運(yùn)行在普通的硬件上的分布式文件系統(tǒng),HDFS是高容錯性的,可以部署在低成本的硬件之上,HDFS大數(shù)據(jù)集的應(yīng)用程序。圖4.1是HDFS的體系結(jié)構(gòu)。圖4.1HDFS體系架構(gòu)由圖4.1可知,Client可以對DataNode進(jìn)行讀和寫操作,同時在NameNode上對元數(shù)據(jù)進(jìn)行操作。NameNode上元數(shù)據(jù)控制DataNode信息。Map/Reduce算法模型是Google的一項(xiàng)重要技術(shù),它是一種編程模式,用以進(jìn)行大數(shù)據(jù)量的計(jì)算。很多開發(fā)人員對并行計(jì)算比較陌生,再涉及到分布式處理就更加棘手。Map/Reduce算法模型就是一種簡化并行計(jì)算的編程模型,它向上層用戶提供接口,屏蔽了并行計(jì)算特別是分布式處理的諸多細(xì)節(jié)問題,讓那些沒有多少并行計(jì)算經(jīng)驗(yàn)的開發(fā)人員也可以很方便的開發(fā)并行應(yīng)用,避免了很多重復(fù)工作。這也就是Map/Reduce算法模型的價值所在,通過簡化編程模型,降低了開發(fā)并行應(yīng)用的入門門檻,并且能大大減輕了程序員在開發(fā)大規(guī)模數(shù)據(jù)的應(yīng)用時的編程負(fù)擔(dān)。4.1.1分布式文件系統(tǒng)HDFS名字節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)HDFS是一個主從結(jié)構(gòu)的體系,一個HDFS集群是由一個名字節(jié)點(diǎn),它是一個管理文件的命名空間和調(diào)節(jié)客戶端訪問文件的主服務(wù)器,當(dāng)然還有的數(shù)據(jù)節(jié)點(diǎn),一個節(jié)點(diǎn)一個,它來管理存儲。HDFS暴露文件命名空間和允許用戶數(shù)據(jù)存儲成文件。內(nèi)部機(jī)制是將一個文件分割成一個或多個的塊,這些塊存儲在一組數(shù)據(jù)節(jié)點(diǎn)中。名字節(jié)點(diǎn)操作文件命名空間的文件或目錄操作,如打開,關(guān)閉,重命名,等等。它同時確定塊與數(shù)據(jù)節(jié)點(diǎn)的映射。數(shù)據(jù)節(jié)點(diǎn)來負(fù)責(zé)來自文件系統(tǒng)客戶的讀寫請求。數(shù)據(jù)節(jié)點(diǎn)同時還要執(zhí)行塊的創(chuàng)建,刪除,和來自名字節(jié)點(diǎn)的塊復(fù)制指示。名字節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)都是軟件運(yùn)行在普通的機(jī)器之上,機(jī)器典型的都是linux,HDFS是用java來寫的,任何支持java的機(jī)器都可以運(yùn)行名字節(jié)點(diǎn)或數(shù)據(jù)節(jié)點(diǎn),利用java語言的超輕便型,很容易將HDFS部署到大范圍的機(jī)器上。典型的部署時將有一個專門的機(jī)器來運(yùn)行名字節(jié)點(diǎn)軟件,機(jī)群中的其他機(jī)器運(yùn)行一個數(shù)據(jù)節(jié)點(diǎn)實(shí)例。體系結(jié)構(gòu)排斥在一個機(jī)器上運(yùn)行多個數(shù)據(jù)節(jié)點(diǎn)的實(shí)例,但是實(shí)際的部署不會有這種情況。集群中只有一個名字節(jié)點(diǎn)極大地簡單化了系統(tǒng)的體系。名字節(jié)點(diǎn)是仲裁者和所有HDFS的元數(shù)據(jù)的倉庫。系統(tǒng)設(shè)計(jì)成用戶的實(shí)際數(shù)據(jù)不經(jīng)過名字節(jié)點(diǎn)。系統(tǒng)設(shè)計(jì)成用戶的實(shí)際數(shù)據(jù)不經(jīng)過名字節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)是負(fù)責(zé)存儲。一般一臺機(jī)器上面部屬一個數(shù)據(jù)節(jié)點(diǎn),有時也會把幾個數(shù)據(jù)節(jié)點(diǎn)部屬在一臺機(jī)器上,但這種情況不是很常見。這些機(jī)器一般都是普通的PC機(jī)。PC機(jī)上一般是GUN/Linux操作系統(tǒng),HDFS是用Java來寫的,任何支持Java的機(jī)器都可以運(yùn)行名字節(jié)點(diǎn)或數(shù)據(jù)節(jié)點(diǎn),利用Java語言的超輕便型,很容易將HDFS部署到大范圍的機(jī)群上[16-17]。數(shù)據(jù)復(fù)制HDFS被設(shè)計(jì)成在一個大集群中可以跨機(jī)器地可靠地存儲海量的文件。它將每個文件存儲成block序列,除了最后一個block,所有的block都是同樣的大小。文件的所有block為了容錯都會被復(fù)制。每個文件的block大小和replication因子都是可配置的。Replication因子可以在文件創(chuàng)建的時候配置,以后也可以改變。HDFS中的文件是write-one,并且嚴(yán)格要求在任何時候只有一個writer。Namenode全權(quán)管理block的復(fù)制,它周期性地從集群中的每個Datanode接收心跳包和一個Blockreport。心跳包的接收表示該Datanode節(jié)點(diǎn)正常工作,而Blockreport包括了該Datanode上所有的block組成的列表。1、副本的存放副本的存放是HDFS可靠性和性能的關(guān)鍵。HDFS采用一種稱為rack-aware的策略來改進(jìn)數(shù)據(jù)的可靠性、有效性和網(wǎng)絡(luò)帶寬的利用。這個策略實(shí)現(xiàn)的短期目標(biāo)是驗(yàn)證在生產(chǎn)環(huán)境下的表現(xiàn),觀察它的行為,構(gòu)建測試和研究的基礎(chǔ),以便實(shí)現(xiàn)更先進(jìn)的策略。龐大的HDFS實(shí)例一般運(yùn)行在多個機(jī)架的計(jì)算機(jī)形成的集群上,不同機(jī)架間的兩臺機(jī)器的通訊需要通過交換機(jī),顯然通常情況下,同一個機(jī)架內(nèi)的兩個節(jié)點(diǎn)間的帶寬會比不同機(jī)架間的兩臺機(jī)器的帶寬大。通過一個稱為RackAwareness的過程,Namenode決定了每個Datanode所屬的rackid。一個簡單但沒有優(yōu)化的策略就是將副本存放在單獨(dú)的機(jī)架上。這樣可以防止整個機(jī)架(非副本存放)失效的情況,并且允許讀數(shù)據(jù)的時候可以從多個機(jī)架讀取。這個簡單策略設(shè)置可以將副本分布在集群中,有利于組件失敗情況下的負(fù)載均衡。但是,這個簡單策略加大了寫的代價,因?yàn)橐粋€寫操作需要傳輸block到多個機(jī)架。在大多數(shù)情況下,replication因子是3,HDFS的存放策略是將一個副本存放在本地機(jī)架上的節(jié)點(diǎn),一個副本放在同一機(jī)架上的另一個節(jié)點(diǎn),最后一個副本放在不同機(jī)架上的一個節(jié)點(diǎn)。機(jī)架的錯誤遠(yuǎn)遠(yuǎn)比節(jié)點(diǎn)的錯誤少,這個策略不會影響到數(shù)據(jù)的可靠性和有效性。三分之一的副本在一個節(jié)點(diǎn)上,三分之二在一個機(jī)架上,其他保存在剩下的機(jī)架中,這一策略改進(jìn)了寫的性能。2、副本的選擇為了降低整體的帶寬消耗和讀延時,HDFS會盡量讓reader讀最近的副本。如果在reader的同一個機(jī)架上有一個副本,那么就讀該副本。如果一個HDFS集群跨越多個數(shù)據(jù)中心,那么reader也將首先嘗試讀本地?cái)?shù)據(jù)中心的副本。3、SafeModeNamenode啟動后會進(jìn)入一個稱為SafeMode的特殊狀態(tài),處在這個狀態(tài)的Namenode是不會進(jìn)行數(shù)據(jù)塊的復(fù)制的。Namenode從所有的Datanode接收心跳包和Blockreport。Blockreport包括了某個Datanode所有的數(shù)據(jù)塊列表。每個block都有指定的最小數(shù)目的副本。當(dāng)Namenode檢測確認(rèn)某個Datanode的數(shù)據(jù)塊副本的最小數(shù)目,那么該Datanode就會被認(rèn)為是安全的;如果一定百分比(這個參數(shù)可配置)的數(shù)據(jù)塊檢測確認(rèn)是安全的,那么Namenode將退出SafeMode狀態(tài),接下來它會確定還有哪些數(shù)據(jù)塊的副本沒有達(dá)到指定數(shù)目,并將這些block復(fù)制到其他Datanode。數(shù)據(jù)組織HDFS支持海量文件處理。應(yīng)用程序可以處理大數(shù)據(jù)集。這些程序一次寫入數(shù)據(jù)多次讀取,因此需要一個比較好的流讀取速度。HDFS典型的塊大小是64M,一個HDFS文件可以最多被切分成128MB個塊,每一個塊分布在不同的數(shù)據(jù)節(jié)點(diǎn)上??蛻舳苏埱髣?chuàng)建文件時,并不立即請求名字節(jié)點(diǎn)。HDFS客戶端在本地的文件中緩存文件數(shù)據(jù),應(yīng)用程序?qū)?shù)據(jù)寫到這個臨時的本地文件。當(dāng)本地文件堆積到大于HDFS塊大小的時候,客戶端聯(lián)系名字節(jié)點(diǎn)。名字節(jié)點(diǎn)插入文件名到文件系統(tǒng)層次當(dāng)中,然后分配一個數(shù)據(jù)塊。名字節(jié)點(diǎn)把請求包括數(shù)據(jù)節(jié)點(diǎn)(可能多個)的標(biāo)識和目標(biāo)數(shù)據(jù)塊反饋給客戶端,客戶端再將本地的臨時文件轉(zhuǎn)移到數(shù)掘節(jié)點(diǎn)數(shù)據(jù)塊中。當(dāng)文件關(guān)閉,還有一些沒有刷新的本地臨時文件也被傳遞到數(shù)據(jù)節(jié)點(diǎn)??蛻舳穗S后通知名字節(jié)點(diǎn),這個文件已經(jīng)關(guān)閉。假如名字節(jié)點(diǎn)在文件關(guān)閉之前死掉,文件就會丟失[18-2]。1、數(shù)據(jù)塊兼容HDFS的應(yīng)用都是處理大數(shù)據(jù)集合的。這些應(yīng)用都是寫數(shù)據(jù)一次,讀卻是一次到多次,并且讀的速度要滿足流式讀。HDFS支持文件的write-once-read-many語義。一個典型的block大小是64MB,因而,文件總是按照64M切分成chunk,每個chunk存儲于不同的Datanode。2、步驟某個客戶端創(chuàng)建文件的請求其實(shí)并沒有立即發(fā)給Namenode,事實(shí)上,HDFS客戶端會將文件數(shù)據(jù)緩存到本地的一個臨時文件。應(yīng)用的寫被透明地重定向到這個臨時文件。當(dāng)這個臨時文件累積的數(shù)據(jù)超過一個block的大?。J(rèn)64M),客戶端才會聯(lián)系Namenode。Namenode將文件名插入文件系統(tǒng)的層次結(jié)構(gòu)中,并且分配一個數(shù)據(jù)塊給它,然后返回Datanode的標(biāo)識符和目標(biāo)數(shù)據(jù)塊給客戶端??蛻舳藢⒈镜嘏R時文件flush到指定的Datanode上。當(dāng)文件關(guān)閉時,在臨時文件中剩余的沒有flush的數(shù)據(jù)也會傳輸?shù)街付ǖ腄atanode,然后客戶端告訴Namenode文件已經(jīng)關(guān)閉。此時Namenode才將文件創(chuàng)建操作提交到持久存儲。如果Namenode在文件關(guān)閉前掛了,該文件將丟失[18-20]。上述方法是對通過對HDFS上運(yùn)行的目標(biāo)應(yīng)用認(rèn)真考慮的結(jié)果。如果不采用客戶端緩存,由于網(wǎng)絡(luò)速度和網(wǎng)絡(luò)堵塞會對吞估量造成比較大的影響。3、流水線復(fù)制當(dāng)某個客戶端向HDFS文件寫數(shù)據(jù)的時候,一開始是寫入本地臨時文件,假設(shè)該文件的replication因子設(shè)置為3,那么客戶端會從Namenode獲取一張Datanode列表來存放副本。然后客戶端開始向第一個Datanode傳輸數(shù)據(jù),第一個Datanode一小部分一小部分(4kb)地接收數(shù)據(jù),將每個部分寫入本地倉庫,并且同時傳輸該部分到第二個Datanode節(jié)點(diǎn)。第二個Datanode也是這樣,邊收邊傳,一小部分一小部分地收,存儲在本地倉庫,同時傳給第三個Datanode,第三個Datanode就僅僅是接收并存儲了。這就是流水線式的復(fù)制。4.1.2Map/Reduce技術(shù)主要操作實(shí)現(xiàn)Map操作Map操作是并行的,所以輸入文件先被劃分為幾個“文件片斷"。如果單個文件的大小達(dá)到了影響搜索時間的程度,這個文件也會被劃分為幾個“片段”。在文件劃分的時候并不考慮輸入文件的內(nèi)部邏輯結(jié)構(gòu),例如一個按行記錄的文本文件也會被按照二進(jìn)制字節(jié)數(shù)大小進(jìn)行片段劃分。然后,每個“文件片段”會對應(yīng)的創(chuàng)建一個新的Map任務(wù)。當(dāng)一個單獨(dú)的Map任務(wù)開始時,對應(yīng)的都會按照每個Reduce任務(wù)配置輸出文件寫操作者。然后Map任務(wù)會使用從指定的lnputFormat類獲得的ReeordReader類來讀取它的FileSplit屬性。InputFormat類負(fù)責(zé)解析輸入和生成Key/Value對。InputFormat也需要處理達(dá)到FileSplit邊界值的記錄。例如TextlnputFormat會讀取超過分割邊界值的FileSplit的最后一行,當(dāng)讀到其他的非第一個FileSplit時,TextlnputFormat會忽略第一個新行以上部分的內(nèi)容。對于InputFormat類來說,沒有必要同時產(chǎn)生有意義的索引鍵和值。例如TextlnputFormat的默認(rèn)輸出包含以輸入行為值以及以毫無意義的行在文件中的偏移量為索引鍵的內(nèi)容。絕大多數(shù)的應(yīng)用僅僅使用行的內(nèi)容而忽略行在文件中的偏移量。N個輸入文件會產(chǎn)生M個待運(yùn)行的Map任務(wù),每個Map任務(wù)都會產(chǎn)生由系統(tǒng)配置好的規(guī)約任務(wù)數(shù)量相同的輸出文件。每個輸出文件對應(yīng)一個規(guī)約任務(wù),所有Map對象的輸出鍵值對都會被路由以保證每一個給定的索引鍵的所有鍵值對會最終出現(xiàn)在指定的一個Reduce任務(wù)中。Combine操作當(dāng)Map操作輸出了它的Key/Value對后就會駐留在內(nèi)存中。由于效率的原因,有時需要充分利用這個事實(shí)的優(yōu)點(diǎn)去提供一個執(zhí)行規(guī)約類型功能的Combiner類。如果使用了一個Combiner類,則映射過程產(chǎn)生的Key/Value對就不會立刻寫到輸出。與此相反的是,輸出會先被收集到列表,每個索引鍵對應(yīng)一個列表。當(dāng)一定數(shù)量的鍵值對被寫入時,這個緩沖區(qū)里的所有鍵值對會被清空轉(zhuǎn)移到Combiner類的Reduce方法中,然后將合并操作產(chǎn)生的鍵值對像原有的Map操作一樣輸出。Reduce操作當(dāng)一個Reduce任務(wù)開始時,它的輸入來源于分散在多個節(jié)點(diǎn)上的Map任務(wù)所產(chǎn)生的許多文件。如果Reduce過程是運(yùn)行在分布式模式下的話,需要在拷貝階段先將這些文件拷貝到Reduce任務(wù)所在節(jié)點(diǎn)的本地文件系統(tǒng)。一旦本地?cái)?shù)據(jù)準(zhǔn)備就緒所有的數(shù)據(jù)都會以追加到文件最后。然后這個文件會被歸并排序以保證給定一個索引鍵。這使得實(shí)際的Reduce操作非常簡單:文件被順序讀入然后輸入文件中的一個索引鍵的所有對應(yīng)值會被一個迭代器順次傳遞給Reduce方法直到下一個索引鍵開始。最后,每個執(zhí)行的Reduce任務(wù)的輸出都會包含一個輸出文件。輸出文件的格式由JobConf.setOutputFormat方法來指定。如果使用了SequentialOutputFormat類,則輸出索引鍵和索引鍵對應(yīng)值得類型都必須指定[21-24]。Map/Reduce執(zhí)行流程Map/Reduce的系統(tǒng)執(zhí)行流程如圖4.2所示,從數(shù)據(jù)流的角度展示了Map/Reduce算法模型。下面詳細(xì)講解一下每一個步驟的作用:圖4.2操作流程圖分割文件(fork)首先,將眾多文件分成大小不等的若干小塊數(shù)據(jù),數(shù)據(jù)塊大小由用戶給定參數(shù)控制,然后啟動機(jī)器集群中的眾多程序拷貝。指派Map/Reduce任務(wù)在眾多程序拷貝中有一個管理機(jī)(master)的主程序,其他的均為工作站(worker)程序,工作站程序有管理機(jī)指派任務(wù)。主程序指派空閑的工作站程序執(zhí)行Map任務(wù)或是Reduce任務(wù)。讀取(read)被指派執(zhí)行Map任務(wù)的工作站讀取相關(guān)的數(shù)據(jù)塊,從原始數(shù)據(jù)中解析出Key/Value對,經(jīng)過Map函數(shù)處理,得到中問鍵值時,存入內(nèi)存緩沖區(qū)。本地寫A,(10calwrite)內(nèi)存中的數(shù)據(jù)組被劃分函數(shù)周期性的劃分到R個區(qū)域?qū)懭氡镜卮疟P。這些在本地磁盤的數(shù)據(jù)數(shù)列的存放位置信息被送回管理機(jī),管理機(jī)負(fù)責(zé)將這些位置信息傳送到執(zhí)行Reduce任務(wù)的工作站。遠(yuǎn)程讀取(remoteread)當(dāng)執(zhí)行Reduce任務(wù)的工作站被告知這些數(shù)據(jù)的位置,它通過遠(yuǎn)程方式讀耿執(zhí)行Map任務(wù)的工作站中的本地緩沖數(shù)據(jù)。Reduce工作站讀取完所有中問數(shù)據(jù)后,通過中問關(guān)鍵字對數(shù)據(jù)進(jìn)行排列,把具有相同關(guān)鍵字的數(shù)據(jù)分為一類。排序操作是必須的,因?yàn)榫哂胁煌年P(guān)鍵字Map后會進(jìn)行相同的Reduce操作。如果中間數(shù)據(jù)的數(shù)量太大不適合存入內(nèi)存,就啟用外部存儲。寫到輸出文件(write)Reduce工作站對每一個由唯一的中間關(guān)鍵字對應(yīng)的中間數(shù)據(jù)進(jìn)行排列,它發(fā)送關(guān)鍵字和相對應(yīng)的中間值給用戶的Reduce函數(shù)。Reduce函數(shù)的輸出結(jié)果將被添加到最后的輸出文件中。當(dāng)所有的Map任務(wù)和Reduce任務(wù)都已經(jīng)完成了的時候,Master激活用戶程序。在這時候Map/Reduce返回用戶程序的調(diào)用點(diǎn)。4.2基于Hadoop的MDVSP平臺的多層分布式架構(gòu)4.2.1系統(tǒng)體系結(jié)構(gòu)圖4.3系統(tǒng)結(jié)構(gòu)框圖在前面理論分析的基礎(chǔ)上我們可以得出,對于本系統(tǒng)我們可以采用B/S結(jié)構(gòu)比較好。如圖4.3所示,在Browser/Server三層體系結(jié)構(gòu)下,表示層、邏輯層、數(shù)據(jù)存儲層被分割成三個相對獨(dú)立的單元,有效地實(shí)現(xiàn)了數(shù)據(jù)存儲、功能邏輯與用戶使用界面的分離,并真正實(shí)現(xiàn)了顯示、計(jì)算、數(shù)據(jù)的分離。如此設(shè)計(jì)可以大以大大減輕網(wǎng)站服務(wù)器的網(wǎng)站,而且使他們之間互相不影響,既較好兼顧了用戶的查詢效率,同時也可以專門設(shè)計(jì)網(wǎng)頁的采集與分析時間,保證系統(tǒng)的工作效率和利用率。表示層:表示層用于生成用戶訪問的Web頁面,該層是用來實(shí)現(xiàn)系統(tǒng)與用戶的一個人機(jī)接口。邏輯層:這一層是非常重要也是非常關(guān)鍵的一層,因?yàn)樗钦嬲饬x上實(shí)現(xiàn)用戶層與數(shù)據(jù)存儲計(jì)算的紐帶。在這一層里我們利用相應(yīng)的代碼實(shí)現(xiàn)前面設(shè)計(jì)好的一些關(guān)鍵算法。所以說該層的設(shè)計(jì)是實(shí)現(xiàn)系統(tǒng)健壯性、可重用性、可擴(kuò)展性和可維護(hù)性的關(guān)鍵因素。數(shù)據(jù)存儲計(jì)算層:該層的實(shí)現(xiàn)是由Hadoop平臺實(shí)現(xiàn)。存儲數(shù)據(jù)庫選用Hadoop組件中的HBase,由圖4.3中我們可以看出該層主要是負(fù)責(zé)存儲整個搜索引擎的底層結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)存儲層主要包括兩個大規(guī)模的數(shù)據(jù)庫,一是面向爬蟲所得頁面與抽取信息的寫入,二是面向客戶查詢的信息的讀取。在Hadoop平臺中我們選擇多個數(shù)據(jù)節(jié)點(diǎn)即DataNode,用于提高存儲Capacity和計(jì)算效率。4.2.2MDVSP平臺數(shù)據(jù)處理模型整體框架因?yàn)镸DVSP是基于Internet的B/S結(jié)構(gòu)的Web服務(wù),而且采用了多層結(jié)構(gòu)來設(shè)計(jì),所以這就決定了數(shù)據(jù)處理模型相對較復(fù)雜,如圖4.4所示。圖4.4數(shù)據(jù)處理模型框架數(shù)據(jù)處理模型中所有的業(yè)務(wù)計(jì)算都在Hadoop平臺上,利用Map/Reduce技術(shù)計(jì)算,查詢用戶數(shù)據(jù)、更新聚焦爬蟲數(shù)據(jù)。用戶上傳的視頻、音頻等數(shù)據(jù)存放在存儲設(shè)備中。為了提高用戶的訪問速度,在Web服務(wù)器前端假設(shè)了負(fù)載均衡設(shè)備,提高Webserver的吞吐能力?;贖adoop平臺的業(yè)務(wù)數(shù)據(jù)并行計(jì)算,將在后面章節(jié)詳細(xì)展開論述。4.2.3MDVSP平臺數(shù)據(jù)在HDFS中存放結(jié)構(gòu)為了讓用戶自己上傳的數(shù)據(jù)能快速、準(zhǔn)確查詢到,我們把爬蟲的數(shù)據(jù)與用戶上傳的數(shù)據(jù)分開。用戶上傳數(shù)據(jù)的優(yōu)先級大于爬蟲優(yōu)先級,客戶端查詢的時候返回結(jié)果也采用相同的處理優(yōu)先級,見圖4.5圖4.5數(shù)據(jù)存放目錄結(jié)構(gòu)4.3MDVSP通信數(shù)據(jù)模型設(shè)計(jì)4.3.1從前面提到的可以看出Hbase分布式數(shù)據(jù)庫數(shù)據(jù)存儲具有一定的哈希性質(zhì),非常適合處理Key/Value類型的數(shù)據(jù),以及結(jié)構(gòu)稀疏的大規(guī)模數(shù)據(jù)。但它不適合于處理關(guān)系型很強(qiáng)的結(jié)構(gòu)化數(shù)據(jù),因?yàn)樗旧聿⒉皇峭耆年P(guān)系型數(shù)據(jù)。Hbase本身不保證數(shù)據(jù)的一致性,提供的查詢機(jī)制也比較簡單。但是Hbase在大規(guī)模數(shù)據(jù)(TB級)的存儲和處理方面上有獨(dú)特的優(yōu)勢。它不建議用戶經(jīng)常修改數(shù)據(jù)?!耙淮螌懭?,多次讀取”是Hbase數(shù)據(jù)庫最大的特色。而這種特色正好滿足分析系統(tǒng)的要求。聚焦爬蟲每天都會獲取龐大的數(shù)據(jù)量,以單臺爬蟲服務(wù)器單線程為例,每天至少30G的數(shù)據(jù)量,如果多臺爬蟲服務(wù)器并行,那么數(shù)據(jù)量有肯能達(dá)到TB級別。數(shù)據(jù)查詢或者數(shù)據(jù)傳輸任何一個地方存在瓶頸就會造成分析結(jié)果的低效或者失敗。在設(shè)計(jì)系統(tǒng)數(shù)據(jù)模型之前,我們先分析一下MDVSP業(yè)務(wù)處理的需求。爬蟲數(shù)據(jù)經(jīng)過主題過濾、分類后的格式主要包括:TraceID:爬行后產(chǎn)生的唯一ID號。Type:爬行數(shù)據(jù)的類型,這個決定了后臺服務(wù)器如何處理爬行到的原始數(shù)據(jù)。URL:記錄原始數(shù)據(jù)的位置[25-26]。4.3.2Hbase是一個稀疏的,排序的,長期存儲在硬盤上的,多維度的,映射表。這張表的索引是行關(guān)鍵字,列關(guān)鍵字和時間戳。每個值是一個不解釋的字符數(shù)組,數(shù)據(jù)都是字符串。用戶在表格中存儲數(shù)據(jù),每一行都有一個可排序的主鍵和任意多的列。由于是稀疏存儲的,所以同一張表的每一行數(shù)據(jù)都可以有截然不同的列。列名字的格式是”<family>:<label>”,都是由字符串組成,每一張表有一個family集合,這個集合是固定不變的,相當(dāng)于表的結(jié)構(gòu),只能通過改變表結(jié)構(gòu)來改變。但是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共有一行,行標(biāo)識是rowkey。每一次的邏輯修改都會有一個Timestamp關(guān)聯(lián)對應(yīng)。一共有4個列定義,分別是<C1:>,<C2:LI>,<C2:L2>,<C3:>。所有數(shù)據(jù)庫的更新都有一個時間戳標(biāo)記,每個更新都是一個新的版本,而Hbase會保留一定數(shù)量的版本,這個值是可以設(shè)定的。客戶端可以選擇獲取距離某個時間最近的版本,或者一次獲取所有版本。雖然從概念視圖來看每個表格是由很多行組成,但是在物理存儲上面

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論