![畢業(yè)論文-基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view12/M07/3B/1B/wKhkGWbxn-SARWBzAADCw9UcC_s214.jpg)
![畢業(yè)論文-基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view12/M07/3B/1B/wKhkGWbxn-SARWBzAADCw9UcC_s2142.jpg)
![畢業(yè)論文-基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view12/M07/3B/1B/wKhkGWbxn-SARWBzAADCw9UcC_s2143.jpg)
![畢業(yè)論文-基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view12/M07/3B/1B/wKhkGWbxn-SARWBzAADCw9UcC_s2144.jpg)
![畢業(yè)論文-基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view12/M07/3B/1B/wKhkGWbxn-SARWBzAADCw9UcC_s2145.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
分類(lèi)號(hào)_TP391北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)基于Spark的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 專(zhuān)業(yè)名稱(chēng)計(jì)算機(jī)科學(xué)與技術(shù) 北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第I頁(yè)超過(guò)一億條,如何從龐大的微博數(shù)據(jù)中發(fā)掘出有價(jià)值的信息成為時(shí)下研究的一個(gè)熱點(diǎn)。2)本文針對(duì)微博數(shù)據(jù)的特點(diǎn),以HBase和ES為基礎(chǔ)設(shè)計(jì)了合理的微博數(shù)據(jù)存儲(chǔ)3)在本文的系統(tǒng)上,設(shè)計(jì)了兩個(gè)應(yīng)用,微博分類(lèi)和熱點(diǎn)檢測(cè)。首先,本文用SVM4)本文的系統(tǒng)有效地支持了其他的相關(guān)研究如微博情感分析,評(píng)論觀點(diǎn)分析,地北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第Ⅱ頁(yè)Withthedevelopmentofinformationtechnology,especiallytherapiddevemobilecommunicationandsocialnetworks,Internethasbecomethemaintoolincreasinglydiverse,increasinglylargescaleofdata.AsanimportantpartmicroblogisdevelopingatanalarmindataofmicroblogbecomeahotspotinplatformisthefoundationtosupportbasisonthetechnologyofSparkhascompletesomeworklikereal-timemicroblogqeffectivedataclassificationandmicrobloghotspotsdetection,istoprovisupporttorelatedresearchaboutsocialThemaincontributionsofthispaperareasfollows:distributedcomputingframework,useHadoopandYarnacomputingplatform.Bytheselatestbigdataprocessingthatsupportssomeoftheanalysisandcomputingjobsbasedonmicroblogdata.2)AccordingtothecharacteristicsofthemicroblogdataandbasedonHElasticsearch,wedesignedareasonaunifiedqueryinterfathequery,thecalculation,andtheanalysisofmicroblo3)Basedonthesystemdesigned,weimplementedperformanceofdataprocessingofthesystem,microblogclassifyi北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)classifiedintofinance,sports,technology,entertainmentdesignedamicrobloghothotwords,hotwordsclustering,andeventuallydetectthehotspotonmicro4)Thesystemeffectivelysupportanalysis,commentaryviewanalysis,locationanalysimicroblogrelatedresKeywords:Bigdata,microblog,Spark北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第IV頁(yè)1緒論 11.1研究背景 1 11.1.2大數(shù)據(jù)時(shí)代已經(jīng)降臨 11.1.3微博平臺(tái)成為理論研究和應(yīng)用開(kāi)發(fā)的熱點(diǎn) 21.1.4有必要構(gòu)建面向微博大數(shù)據(jù)處理平臺(tái) 31.2國(guó)內(nèi)外研究現(xiàn)狀 41.2.1微博研究現(xiàn)狀 41.2.2大數(shù)據(jù)處理技術(shù)現(xiàn)狀 51.3研究目標(biāo)與內(nèi)容 61.4論文結(jié)構(gòu)組織 82相關(guān)技術(shù)綜述 9 9 9 3分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì) 3.1系統(tǒng)需求 3.2設(shè)計(jì)原則 3.3系統(tǒng)總體架構(gòu)設(shè)計(jì) 3.4微博數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì) 3.4.1微博數(shù)據(jù)的結(jié)構(gòu) 3.4.2微博數(shù)據(jù)存儲(chǔ)的需求 3.4.4Elasticsearch索引模型 北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第V頁(yè)3.4.5最終存儲(chǔ)方案 3.5組件整合及統(tǒng)一查詢接口的設(shè)計(jì) 3.6微博分類(lèi)算法設(shè)計(jì) 3.6.1SVM分類(lèi)算法介紹 3.6.2微博分類(lèi)設(shè)計(jì) 3.7熱點(diǎn)檢測(cè)算法設(shè)計(jì) 3.7.1熱詞檢測(cè) 21 213.7.3Canopy聚類(lèi)算法介紹 223.7.4文本相似性度量 3.7.5熱點(diǎn)事件檢測(cè)設(shè)計(jì) 3.8本章小結(jié) 4分布式微博數(shù)據(jù)處理系統(tǒng)的實(shí)現(xiàn) 254.1系統(tǒng)開(kāi)發(fā)環(huán)境 4.1.1平臺(tái)環(huán)境和開(kāi)發(fā)語(yǔ)言 4.1.2技術(shù)基礎(chǔ) 4.2系統(tǒng)部署 4.2.1集群準(zhǔn)備工作 26 4.3微博數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn) 4.3.1表和索引的建立 4.3.2數(shù)據(jù)的導(dǎo)入 4.4組件整合及統(tǒng)一查詢接口的實(shí)現(xiàn) 北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)4.4.3查詢接口的實(shí)現(xiàn) 4.5微博分類(lèi)的實(shí)現(xiàn) 4.6微博熱點(diǎn)檢測(cè)的實(shí)現(xiàn) 4.6.1熱詞檢測(cè)的實(shí)現(xiàn) 4.6.2熱詞聚類(lèi)的實(shí)現(xiàn) 404.7本章小結(jié) 5實(shí)驗(yàn)驗(yàn)證 5.1實(shí)驗(yàn)環(huán)境 5.2功能實(shí)驗(yàn) 5.2.1實(shí)驗(yàn)?zāi)康?5.2.2實(shí)驗(yàn)過(guò)程 5.2.3實(shí)驗(yàn)結(jié)果分析 455.3性能實(shí)驗(yàn) 5.3.1實(shí)驗(yàn)?zāi)康?465.3.2實(shí)驗(yàn)過(guò)程 465.3.3實(shí)驗(yàn)結(jié)果分析 496總結(jié)與展望 6.1工作總結(jié) 6.2工作展望 致謝 參考文獻(xiàn) 附錄 附錄A系統(tǒng)部署相關(guān)文件 55 A3hadoopmapred-site.xml A4hadoopyarn-site.xml A5Hbasehbase-site.xml 北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文) B1ES索引創(chuàng)建代碼 北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)1緒論Sougo,購(gòu)物網(wǎng)站Amazon、taobao等大型網(wǎng)站,它們的用戶規(guī)模龐大,網(wǎng)注冊(cè)人數(shù)早已超過(guò)5億。CNNIC第33次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r調(diào)查統(tǒng)計(jì)報(bào)告4]顯示截至2013年12月,我國(guó)微博用戶規(guī)模為2.81億,網(wǎng)民中微博使用率為45.5%,新浪微博大數(shù)據(jù)時(shí)代的到來(lái),使得原有的數(shù)據(jù)挖掘方法和BI(BusinessIntelligence)工具已北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)越多的認(rèn)識(shí)到企業(yè)數(shù)據(jù)的重要性?!凹~約時(shí)報(bào)”在2012年2月的一篇專(zhuān)欄中稱(chēng),“大將開(kāi)始這一進(jìn)程?!毙录夹g(shù)的發(fā)展催生了新的交流手段,微博(Microblog)平臺(tái)提供服務(wù)允許用戶以網(wǎng)臺(tái)雖然具有強(qiáng)大的用戶粘性和用戶群體,但在其消息傳播的功能上遠(yuǎn)落后于微博平臺(tái)。目前在中國(guó),微博相對(duì)于其他傳統(tǒng)的SNS平臺(tái)具有較大優(yōu)勢(shì),是研究與應(yīng)用的熱點(diǎn)。注冊(cè)人數(shù)早已超過(guò)5億。CNNIC第33次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r調(diào)查統(tǒng)計(jì)報(bào)告截至2013年12月,我國(guó)微博用戶規(guī)模為2.81億,網(wǎng)民中微博使用率為45.5%。尤其是在突發(fā)和北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第3頁(yè)熱點(diǎn)事件中,微博的影響規(guī)模和傳播速度超越了普通博客和傳統(tǒng)的新聞媒體。2008年5月12日,中國(guó)四川汶川發(fā)生大地震,Twitter在約14時(shí)35分33秒披露首條消息;包括臨武瓜農(nóng)事件、校車(chē)超載事故,以及2014年4月起在全國(guó)產(chǎn)生巨大影響的“幼端的信息獲取方式提高了事件的采集時(shí)效性;而帶有follow(跟隨、關(guān)注)特征的用戶其內(nèi)容的傳播成本(包括時(shí)間成本、資源占用成本和用戶使用成本)很低,其直接結(jié)果及話題檢測(cè)和跟蹤(TopicDetectio大數(shù)據(jù)時(shí)代的到來(lái),使得原有的數(shù)據(jù)挖掘方法和BI(BusinessIntelligence)工不能滿足實(shí)際需要,計(jì)算機(jī)科學(xué)界迫切需要尋求新的數(shù)據(jù)挖掘解決方案。2012年3月,(SDAV),在整合六個(gè)美國(guó)國(guó)家級(jí)實(shí)驗(yàn)室和七個(gè)大學(xué)的科研力量的基礎(chǔ)上,開(kāi)發(fā)一套新行效率(Efficiency)以及對(duì)異構(gòu)(Heteroge北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)對(duì)傳統(tǒng)的社交網(wǎng)絡(luò)和微博應(yīng)用等方面的研究,是最近一兩年的熱點(diǎn)。國(guó)內(nèi)外這方年2月的研究報(bào)告表明,微博內(nèi)容反映的用戶情感特征可以用于對(duì)某些特定事件進(jìn)行北航等課題組和研究團(tuán)隊(duì)已在這方面開(kāi)展了深入研究,并取得了一些卓有成效的工作。目前針對(duì)微博已經(jīng)有一些分析工具和研究成果。如新浪官方提供的工具知微1,該工具免費(fèi)版提供2000以下轉(zhuǎn)發(fā)傳播分析;提供可視化的微博傳播路徑圖,傳播關(guān)鍵人1、整體展現(xiàn):以可視化的表現(xiàn)方式展現(xiàn)微博傳播路徑,展現(xiàn)關(guān)鍵人物、統(tǒng)計(jì)覆蓋2、粉絲屬性:性別比例、地域分布、加V認(rèn)證北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)5、其他分析:在轉(zhuǎn)發(fā)數(shù)據(jù)分析的基礎(chǔ)上,可以延伸設(shè)計(jì)出許多有趣的角度,比如容業(yè)容圖1.1PKUVIS微博轉(zhuǎn)發(fā)分析Google作為大數(shù)據(jù)應(yīng)用最為廣泛的互聯(lián)網(wǎng)公司之一,2006年率先提出“云計(jì)算”北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第6頁(yè)處理技術(shù)。受到GFS和MapReduce啟發(fā),Apache開(kāi)源組織開(kāi)發(fā)了一個(gè)云計(jì)算平臺(tái)Hadoop,現(xiàn)在Hadoop已經(jīng)發(fā)展為一個(gè)包括分布式文件系統(tǒng)(HadoopDistributedFileSystem,HDFS)、分布式數(shù)據(jù)庫(kù)(HBase、Cassandra)以及數(shù)據(jù)分析處理MapReduce等模塊在內(nèi)的完整生態(tài)系統(tǒng)(Ecosystem),圖1.2展示了一個(gè)典型的Hadoop生態(tài)系統(tǒng)的構(gòu)成。Hadoop現(xiàn)已經(jīng)發(fā)展成為目前最流行的大數(shù)據(jù)處理平臺(tái),在很多大公司如Facebook15、雅虎、IBM被廣泛使用,關(guān)于Hadoop的詳細(xì)介紹見(jiàn)2.1節(jié),關(guān)于HBase的詳細(xì)介紹見(jiàn)2.2UNIFIED,ELASTIC,RESILIENT,SECUREFilesystem加州伯克利大學(xué)AMP實(shí)驗(yàn)室提出了一種基于內(nèi)存的分布式計(jì)算框架Spark?l,目標(biāo)是解決在大規(guī)模的特定數(shù)據(jù)集上的迭代運(yùn)算或重復(fù)查詢檢索,其聲稱(chēng)在某些運(yùn)算時(shí),速度比MapReduce快百倍以上。Spark發(fā)展迅速,2014年2月,該項(xiàng)目成為Apache頂Hadoop的Cloudera(CDH)發(fā)行版的默認(rèn)流處理框架已經(jīng)替換成了Spark,Mahout的支持平臺(tái)也從MapReduce遷移到Spark。Spark正在成為新一代的分布式計(jì)算框架的事本研究的目標(biāo)是要實(shí)現(xiàn)一個(gè)面向微博的分布式數(shù)據(jù)處理系統(tǒng),在此系統(tǒng)上實(shí)現(xiàn)以下幾點(diǎn)功能用以驗(yàn)證系統(tǒng)的有效性,正確性,可靠性及性能:北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第7頁(yè)1.高效的微博數(shù)據(jù)查詢引擎,實(shí)現(xiàn)高效的微博數(shù)據(jù)查詢引擎,支持多字段范圍查詢等2.微博流的實(shí)時(shí)分類(lèi),將爬蟲(chóng)獲取的微博流實(shí)時(shí)分為政治、新聞、科技、娛樂(lè)等類(lèi)別,得到微博在每個(gè)領(lǐng)域的活躍情況3.微博熱點(diǎn)事件的發(fā)現(xiàn)與監(jiān)測(cè),在分類(lèi)后的各類(lèi)別微博中發(fā)現(xiàn)該類(lèi)別下的熱點(diǎn)事件,并且監(jiān)測(cè)該事件的熱度變化。根據(jù)研究目標(biāo),本文研究?jī)?nèi)容如下:本研究的主要研究?jī)?nèi)容是要面向微博的分布式數(shù)據(jù)處理系統(tǒng),設(shè)計(jì)出并搭建出系統(tǒng),針對(duì)系統(tǒng)各個(gè)組件進(jìn)行整合優(yōu)化,實(shí)現(xiàn)高效的查詢和計(jì)算引擎,以及在該系統(tǒng)上運(yùn)行幾個(gè)樣例算法,最終達(dá)到本研究的研究目標(biāo)。首先需要搭建這樣一套分布式存儲(chǔ)與處理框架,支持大量微博數(shù)據(jù)的實(shí)時(shí)查詢,查詢的內(nèi)容包括,按關(guān)鍵字查詢微博,查詢微博的轉(zhuǎn)發(fā)樹(shù),查詢用戶信息。查詢的條件可以是用戶名,日期,關(guān)鍵字,并且可以統(tǒng)計(jì)出查詢微博集合的地域分布,年齡分布,用戶類(lèi)型分布等統(tǒng)計(jì)信息。其次實(shí)現(xiàn)統(tǒng)一的查詢接口,各個(gè)查詢結(jié)果整合,統(tǒng)一接口,以便于上層應(yīng)用的查詢。針對(duì)微博數(shù)據(jù)的特點(diǎn),設(shè)計(jì)合理的存儲(chǔ)與查詢方案,配合統(tǒng)一的查詢接口,從而實(shí)現(xiàn)高效的微博數(shù)據(jù)查詢。深度整合各組件,使各組件可以方便的互相訪問(wèn)數(shù)據(jù)。最后以微博分類(lèi)和微博熱點(diǎn)檢測(cè)為應(yīng)用示例,測(cè)試系統(tǒng)的查詢與計(jì)算性能。研究目標(biāo)與內(nèi)容示意圖如下:目標(biāo)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第1章主要介紹研究的背景。首先介紹大數(shù)據(jù)的發(fā)展情況以及關(guān)于微博的一些研究第3章主要介紹對(duì)分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì),首先給出了系統(tǒng)的需求,概括第5章完成系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)后,根據(jù)第三章提出的功能需求對(duì)系統(tǒng)功能與性能進(jìn)第6章總結(jié)和展望。對(duì)論文進(jìn)行總結(jié),找出論文中的不足之處,并對(duì)下一步的工作北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第9頁(yè)2相關(guān)技術(shù)綜述ApacheHadoop|l?]是由Apache基金會(huì)支持的開(kāi)源實(shí)現(xiàn)MapReduce項(xiàng)目,該項(xiàng)目包含許多子項(xiàng),目前已被廣泛應(yīng)用于分布式環(huán)境的構(gòu)建和資源管理。ApacheHadoop提供了一套能夠在分布式集群上處理大數(shù)據(jù)集的編程框架,并能夠?qū)崿F(xiàn)對(duì)分布式計(jì)算機(jī)集群的管理,包括整合存儲(chǔ)能力、任務(wù)調(diào)度、橫向擴(kuò)展等。該框架通過(guò)自身的容錯(cuò)機(jī)制實(shí)現(xiàn)系統(tǒng)的高可靠性,而不依賴(lài)于各個(gè)節(jié)點(diǎn)的硬件性能。該項(xiàng)目包括如下幾個(gè)核心組件:1.HadoopCommon:通用組件,對(duì)其他組件提供基礎(chǔ)支持。2.HadoopDistributedFileSystem(HDFS):Hadoop的分布式文件系統(tǒng),提供高吞吐的數(shù)據(jù)訪問(wèn)。3.HadoopYARN:任務(wù)調(diào)度和資源管理框架,在其最新版本中發(fā)布,未來(lái)將用于支持多種分布式編程框架。4.HadoopMapReduce:并行運(yùn)算編程框架MapReduce的一種開(kāi)源實(shí)現(xiàn)。除此之外,還有許多基于上述核心組件的組件或子項(xiàng)目,如:ZooKeeper,Mahout,HBase是參照GoogleBigtable實(shí)現(xiàn)的開(kāi)源NoSQL數(shù)據(jù)庫(kù)191,它具有強(qiáng)一致性、性能隨機(jī)寫(xiě)、面向列可動(dòng)態(tài)修改、可水平仲縮的特性。HBase支持范圍查詢,支持行事務(wù)。而且HBase作為從Hadoop項(xiàng)目分離出來(lái)的子項(xiàng)目,與其無(wú)縫集成,Hadoop處理后的數(shù)據(jù)可以直接寫(xiě)入HBase,而HBase的數(shù)據(jù)可以直接通過(guò)Hadoop處理。Facebook選擇HBase作為他們的短消息存儲(chǔ)系統(tǒng),國(guó)內(nèi)的淘寶云計(jì)算平臺(tái)同樣運(yùn)用HBase作為后臺(tái)儲(chǔ)HBase具有良好的擴(kuò)展性,能按rowkey進(jìn)行高效查詢,能快速查詢一定范圍內(nèi)的rowkey數(shù)據(jù)。然而HBase的易用性不好,不支持SQL語(yǔ)言,每條SQL語(yǔ)句都需要用戶使用相應(yīng)的HBaseAPI實(shí)現(xiàn),還要考慮運(yùn)用合適的Filter,是否使用查詢緩存、是否使用Coprocessor等。而且HBase不支持二級(jí)索引,作條件查詢時(shí),只能全表掃描,并使用北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)它是由加州大學(xué)伯克利分校AMP實(shí)驗(yàn)室(Algorithms,Ma發(fā),可用來(lái)構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序[20]。Apache基金會(huì)宣布旗下的ApacheSpark項(xiàng)目成為基金會(huì)的頂級(jí)項(xiàng)目,擁有頂級(jí)域名,基金會(huì)稱(chēng)SpApacheSpark是一種與Hadoop相似的開(kāi)源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使Spark在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,RDD:Spark的核心概念是RDLineage:利用內(nèi)存加快數(shù)據(jù)加載在眾多的的部分分區(qū)數(shù)據(jù)丟失時(shí),它可以通過(guò)Lineage獲取足夠的信息來(lái)重新運(yùn)算和恢復(fù)丟失的北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第11頁(yè)于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第12頁(yè)3分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)網(wǎng)的數(shù)據(jù)處理系統(tǒng)的功能需求;然后,從需求角度出發(fā),明確系統(tǒng)的設(shè)計(jì)原則;其3.系統(tǒng)有較高的可靠性與性能(吞吐量,延遲)。在明確功能需求的基礎(chǔ)上,分析上述的系統(tǒng)功能需求可以得出兩點(diǎn)要求:1)本系1.模塊化原則:系統(tǒng)的底層存儲(chǔ)、索引、計(jì)算引擎等模塊相互分離、各個(gè)獨(dú)立功能的分離、核心系統(tǒng)與上層應(yīng)用的分離等等都要求了系統(tǒng)需要高度模塊化,模塊化的原則也讓系統(tǒng)的復(fù)雜度有了很大的下降,但對(duì)模塊間通訊和耦合提出了2.實(shí)時(shí)性原則:微博查詢是用戶的常用功能,要想有良好的用戶體驗(yàn),要盡量縮3.可靠性原則:分布式系統(tǒng)中部分組件存在單點(diǎn)故障,應(yīng)該做一些措施,保證系北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第13頁(yè)所以保證網(wǎng)頁(yè)的功能和性能體驗(yàn)優(yōu)良,是系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的一大原則,要充分微博搜索微博搜索統(tǒng)計(jì)分析微博分類(lèi)事件檢測(cè)查詢接口大數(shù)據(jù)存儲(chǔ)NoSQl應(yīng)用層高圖3.1系統(tǒng)架構(gòu)圖2.ElasticSearch(以4.Mahout:運(yùn)用Mahout中的機(jī)器學(xué)習(xí)算法支持系統(tǒng)的一些運(yùn)算;7.在本系統(tǒng)之上的應(yīng)用有微博搜索、統(tǒng)計(jì)分析、微博分類(lèi)、事件檢測(cè)等。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第14頁(yè)段有微博ID、微博來(lái)源、微博創(chuàng)建時(shí)間、地理信息(經(jīng)緯度)、微博作者ID、微博配圖、微博內(nèi)容、轉(zhuǎn)發(fā)的上一級(jí)微博的ID(如果是轉(zhuǎn)發(fā)微博)、轉(zhuǎn)發(fā)的根微博的ID、(如果是轉(zhuǎn)發(fā)微博)、轉(zhuǎn)發(fā)數(shù)量、評(píng)論數(shù)量、點(diǎn)贊的數(shù)量;2.用戶數(shù)據(jù),此數(shù)據(jù)是微博對(duì)應(yīng)的用戶的相關(guān)信息,其中包含的字段有用戶UID、3.評(píng)論數(shù)據(jù),此數(shù)據(jù)是針對(duì)某條微博的評(píng)論信息,其中包含的字段有評(píng)論的ID、各個(gè)轉(zhuǎn)發(fā)微博的ID以及其對(duì)應(yīng)的上一級(jí)的ID。1.能查詢到一條微博的所有信息,包括博文信息,用戶信息,評(píng)論信息,轉(zhuǎn)發(fā)信3.本系統(tǒng)的微博數(shù)據(jù)應(yīng)滿足離線分析的需求,能高效的批量掃描一段時(shí)間所有微北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第15頁(yè)Hbase是一個(gè)稀疏的,排序的,長(zhǎng)期存儲(chǔ)在硬盤(pán)上的,多維度的映射表。HBase表是由行和列構(gòu)成的,所有的列是從屬于某一個(gè)列族的。行和列的交叉點(diǎn)稱(chēng)之為cell,cell是版本化的。cell的內(nèi)容是不可分割的字節(jié)數(shù)組。表的行鍵也是一段字節(jié)數(shù)組,所以任何東西都可以保存進(jìn)去,不論是字符串或者數(shù)字。HBase的表是按key排序的,排序方式之針對(duì)字節(jié)的。所有的表都必須要有主鍵-key。在HBase是列族一些列的集合。一個(gè)列族所有列成員是有著相同的前綴。比如,列info:text和info:uid都是列族courses的成員。冒號(hào)(:)是列族的分隔符,用來(lái)區(qū)分前綴和列名。column前綴必須是可打印的字符,剩下的部分(稱(chēng)為qualify),可以又任意字節(jié)數(shù)組組成。列族必須在表建立的時(shí)候聲明。column就不需要了,隨時(shí)可以新建。先看一info:text="轉(zhuǎn)發(fā)微博…"在物理上,一個(gè)的列族成員在文件系統(tǒng)上都是存儲(chǔ)在一起。因?yàn)榇鎯?chǔ)優(yōu)化都是針對(duì)列族級(jí)別的,這就意味著,一個(gè)colimnfamily的所有成員的是用相同的方式訪問(wèn)的。盡管在概念視圖里,表可以被看成是一個(gè)稀疏的行的集合。但在物理上,它的是區(qū)分列族存儲(chǔ)的。新的columns可以不經(jīng)過(guò)聲明直接加入一個(gè)列族。info:text="轉(zhuǎn)發(fā)微博…"北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文) "3705418322770060"t3contents:createAt="2014-05 要存儲(chǔ)。因此若一個(gè)請(qǐng)求為要獲取t8時(shí)間的inf定行的屬性,Put要么向表增加新行(如果key是新的)或更新行elasticsearch的模型基于JSON,事實(shí)上,在ES支持插入索引、按ID獲取一條記錄,以及按queryString來(lái)做查詢,還支持的針對(duì)微博數(shù)據(jù)的特點(diǎn),本系統(tǒng)對(duì)微博數(shù)據(jù)的需求,結(jié)合數(shù)據(jù)庫(kù)HBase和索引微博id相結(jié)合作為鍵的存儲(chǔ)方案,即以time-mid為rowk中,同時(shí)在ElasticSearch中以mid為id索引微博,另外還索引微博中再查詢一遍補(bǔ)充信息,這時(shí)要用在ES中查到北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)rowkey去HBase中查詢。對(duì)于掃描某一時(shí)間段此信息存儲(chǔ)在HBase中,以“原始微博id”,“id,對(duì)應(yīng)的列值是該轉(zhuǎn)發(fā)的上一級(jí)微博id。HBase的MapReduce接口,以類(lèi)似Hadoop的方式一的web端調(diào)用,所以必須將各個(gè)查詢結(jié)果整合,北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)*工工圖3.2統(tǒng)一查詢接口支持向量機(jī)(SVMs)在Cortes和Vapnik(1995)被引入,擴(kuò)展了瓦普尼克(1982)SVMs特別適合處理高維的數(shù)據(jù),例如文本文檔的定中,它們處理類(lèi)被嚴(yán)格限制為兩個(gè)的二進(jìn)制分類(lèi)器問(wèn)題(后面會(huì)討論多類(lèi)SVMs)??紤]到訓(xùn)練集D={(xi,yi),i=1,.,n},xi∈Rm,其中yi∈{-1,1}數(shù)h:Rm→{0,1}可以通過(guò)引入符號(hào)f(x)得到,北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第19頁(yè)學(xué)習(xí)這類(lèi)模型需要從數(shù)據(jù)中決定w,wo。如果存在一個(gè)超平面,它的所有相關(guān)分類(lèi)函數(shù)都和所有標(biāo)簽一致,例如yif(xi)>0,當(dāng)i=0,…,n,那么訓(xùn)練樣例就是線性可分的。在這個(gè)前提下,羅森布拉克(1958)證明了下面的簡(jiǎn)單迭代算法結(jié)束并返回一個(gè)6dos←sgn(y;(wTx;+wo))可以看出,D是線性可分割的充分條件是訓(xùn)練樣例的數(shù)目n=|D|要小于或者等于m+1。這在文本分類(lèi)中這種情況很可能發(fā)生,詞匯表一般包括幾千個(gè)關(guān)鍵詞,通常比可用的訓(xùn)練樣例集數(shù)目大。從SVM的原理中可以看出來(lái),SVM是一種典型的兩類(lèi)分類(lèi)器,即它只回答屬于正類(lèi)還是負(fù)類(lèi)的問(wèn)題。而現(xiàn)實(shí)中要解決的問(wèn)題,往往是多類(lèi)的問(wèn)題,比如本系統(tǒng)要實(shí)現(xiàn)的微博分類(lèi)。如何由兩類(lèi)分類(lèi)器得到多類(lèi)分類(lèi)器,是一個(gè)值得研究的問(wèn)題。文本分類(lèi)為例,現(xiàn)成的方法有很多,本文用一種所謂“一類(lèi)對(duì)其余”的方法,就是每次仍然解一個(gè)兩類(lèi)分類(lèi)的問(wèn)題。我們要把微博分成有5個(gè)類(lèi)別,第一次就把類(lèi)別1的樣本定為正樣本,其余2,3,4,5的樣本合起來(lái)定為負(fù)樣本,這樣得到一個(gè)兩類(lèi)分類(lèi)器,它能夠指出一篇文章是還是不是第1類(lèi)的;第二次我們把類(lèi)別2的樣本定為正樣本,把1,3,4,5的樣本合起來(lái)定為負(fù)樣本,得到一個(gè)分類(lèi)器,如此下去,我們可以得到5北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第20頁(yè)個(gè)這樣的兩類(lèi)分類(lèi)器(總是和類(lèi)別的數(shù)目一致)。微博分類(lèi)的時(shí)候,我們需要將該條微博去5個(gè)分類(lèi)器中分別檢測(cè),是否是某類(lèi)的分類(lèi)。這種方法的好處是每個(gè)優(yōu)化問(wèn)題的規(guī)模比較小,而且分類(lèi)的時(shí)候速度很快(只需要調(diào)用5個(gè)分類(lèi)器就知道結(jié)果)。是要數(shù)倍于正類(lèi)(因?yàn)樗浅?lèi)以外其他類(lèi)別的樣本之和),這就人為的造成了的“數(shù)圖3.3微博分類(lèi)示意圖是“突發(fā)詞”,即短時(shí)間內(nèi)微博上上升最快的詞,每隔一段時(shí)間將近期的微博分詞統(tǒng)計(jì)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第21頁(yè)微博熱詞的檢測(cè)需要分詞,統(tǒng)計(jì),比較三個(gè)步驟,整個(gè)算法設(shè)計(jì)成了Spark任務(wù),分布式運(yùn)行提高效率。1.分詞,原始的微博是文本信息,需要將文本進(jìn)行分詞處理,本文采用了著名的2.詞的匯總統(tǒng)計(jì),分詞完成后,先將所有微博的分詞結(jié)果按秒?yún)R總,即統(tǒng)計(jì)每一秒內(nèi)的微博中出現(xiàn)每個(gè)詞的個(gè)數(shù),再以每秒的詞頻數(shù)據(jù),匯總出每一分鐘的詞頻,繼而統(tǒng)計(jì)出每一小時(shí),每一天的詞頻數(shù)據(jù)。至此,可以得到任意時(shí)間內(nèi)的微博的詞頻統(tǒng)計(jì)。3.比較當(dāng)前時(shí)段詞頻與歷史時(shí)段詞頻,將變化最大的詞挑選出來(lái)即為此時(shí)段的突發(fā)熱詞,此過(guò)程中會(huì)需要設(shè)置過(guò)濾條件,將一些噪音詞去除。3.7.2K-Means聚類(lèi)算法介紹Kmeans是一種常用高效的聚類(lèi)算法[22|,1967年,MacQueen將他所提出的一種算法命名為k-means算法。這種算法的基本思想是將每一個(gè)樣本分給具有最近中心(均值)的聚類(lèi)。k-means是數(shù)據(jù)挖掘和知識(shí)發(fā)現(xiàn)領(lǐng)域中一種重要且成功的方法。該算法是一種基于迭代的重劃分策略:算法完成時(shí)將數(shù)據(jù)集劃分成事先規(guī)定的K個(gè)簇類(lèi),而迭代過(guò)程中不斷的優(yōu)化各個(gè)數(shù)據(jù)點(diǎn)與聚類(lèi)中心之間的距離。對(duì)于數(shù)據(jù)點(diǎn)集合X=[xi,…xn},個(gè)劃分的中心,則有下面的目標(biāo)函數(shù):北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第22頁(yè)k-means算法正是基于上面的目標(biāo)函數(shù),不斷尋找該函數(shù)最小值的方法。最簡(jiǎn)單的1.將所有樣本分成K個(gè)初始聚類(lèi)。2.將樣本集合中的某個(gè)樣本劃入中心(均值)離它最近的聚類(lèi)。(這里的距離通常是用標(biāo)準(zhǔn)化或非標(biāo)準(zhǔn)化數(shù)據(jù)算出的歐氏距離)。對(duì)得到樣本和失去樣本的兩個(gè)聚類(lèi)重新計(jì)算他們的中心(均值)。3.重復(fù)步驟2,直至所有的樣本都不能再分配時(shí)為止。上述過(guò)程中,步驟1也可以不從分割出K個(gè)初始聚類(lèi)開(kāi)始,而從規(guī)定K個(gè)初始中數(shù)據(jù)進(jìn)行“粗”聚類(lèi),得到k值后再使用K-means進(jìn)行進(jìn)一步“細(xì)”聚類(lèi)。圖3.5Canopy聚類(lèi)算法示意第23頁(yè)1:給定一個(gè)向量化的數(shù)據(jù)集D,選擇兩個(gè)距離閾值T1,T2,且T1>T2;2:隨機(jī)取D中的一個(gè)數(shù)據(jù)d作為中心,并將d從D中移除;5:將所有distance<T2的點(diǎn),都從D中移除;6:重復(fù)步驟3到5,直到D為空,形成多個(gè)canopy類(lèi),算法結(jié)束。3.7.4文本相似性度量在分類(lèi)聚類(lèi)算法,推薦系統(tǒng)中,常要用到兩個(gè)輸入變量(通常是特征向量的形式)距離根據(jù)輸入數(shù)據(jù)的特征,選擇一種合適的相似性度量方法.此值就是兩個(gè)向量之間的夾角的余弦值。余弦相似度用向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異的大小。相比距離度量,余弦相似度更加注重兩個(gè)向量在方向上的差異,而非距離或長(zhǎng)度上。向量化,再用Canopy聚類(lèi)算法得到初始類(lèi)的數(shù)目和中心點(diǎn),然后用K-means進(jìn)行進(jìn)一北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第24頁(yè)K值和中心點(diǎn)3.8本章小結(jié)本章首先給出了整體的需求,概括了系統(tǒng)應(yīng)該完成的工作,隨后基于系統(tǒng)功能需求,制定了系統(tǒng)設(shè)計(jì)目標(biāo),提出系統(tǒng)設(shè)計(jì)原則。根據(jù)系統(tǒng)功能需求和設(shè)計(jì)原則,設(shè)計(jì)了系統(tǒng)的總體架構(gòu)。后面重點(diǎn)介紹了微博數(shù)據(jù)存儲(chǔ)方案的設(shè)計(jì),組件整合及統(tǒng)一查詢接口的設(shè)計(jì),微博分類(lèi)及熱點(diǎn)檢測(cè)的算法設(shè)計(jì)。通過(guò)本章的介紹,給出了分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì),為下一步具體的實(shí)現(xiàn)做好準(zhǔn)備。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第25頁(yè)4分布式微博數(shù)據(jù)處理系統(tǒng)的實(shí)現(xiàn)本系統(tǒng)運(yùn)行環(huán)境是一個(gè)8個(gè)節(jié)點(diǎn)的集群,每個(gè)節(jié)點(diǎn)的配置如下。●CPU:2顆,每顆8核心16線程(Intel(R)Xeon(R)CPUE5-26500@2.00GHz)●硬盤(pán):6T機(jī)械硬盤(pán),480G固態(tài)硬盤(pán)2.開(kāi)發(fā)環(huán)境北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第26頁(yè)2.2.0(本地編譯)0.90(本地編譯)4.2.1集群準(zhǔn)備工作在部署系統(tǒng)所需的組件之前,需要先對(duì)集群做一些準(zhǔn)備工作,主要包括集群IP和域名的配置,集群ssh的配置,以及安裝JDK和NTP服務(wù),準(zhǔn)備一些批處理腳本,以方便之后的軟件部署工作。集群準(zhǔn)備的流程如圖4.1所示1、集群地址與域名本文搭建了一個(gè)8節(jié)點(diǎn)的集群,每個(gè)節(jié)點(diǎn)的IP和域名如下,需要在每個(gè)節(jié)點(diǎn)的/etc/hosts文件中添加集群地址和域名信息。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第27頁(yè)域名配置好后,確保每臺(tái)機(jī)器ssh可以免密碼互相訪問(wèn)。由于每臺(tái)機(jī)器的配置基本相同,所以只需要在一臺(tái)機(jī)器上配置好后,將文件拷貝到其他機(jī)器,為了使這個(gè)過(guò)程更加便捷,本文使用了腳本remote.sh,此腳本可以在每個(gè)節(jié)點(diǎn)上執(zhí)行給定的命令,如要給所有節(jié)點(diǎn)同步指定的文件,則可以使用remote.sh方便的3、相關(guān)軟件安裝為了使集群的時(shí)鐘一致,需要在每個(gè)節(jié)點(diǎn)上安裝ntp服務(wù);另外,Hadoop、Hbase、Spark、Elasticsearch的運(yùn)行都依賴(lài)于JAVA,所以需要安裝JDK;一些軟件的編譯需要(1)將下載的JDK解壓到任意目錄,如/usr/java/jdk目錄;(2)在/etc/profile中添加JAVA_HOME環(huán)境變量,將JAVA路徑添加到PATH;(3)用apt-get安裝ntp服務(wù);(4)下載Maven,配置Path;(5)將文件同步到其它節(jié)點(diǎn)。由于Hadoop官方未提供64為的編譯版本,所以Hadoop的部署要從編譯源代碼開(kāi)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第28頁(yè)始,編譯成功后,再在其中一個(gè)節(jié)點(diǎn)上進(jìn)行Hadoop的配置,再把文件同步到其它節(jié)點(diǎn),Hadoop包含HDFS和Yarn兩個(gè)模塊,前者是分布式文件系統(tǒng),后者是分布式計(jì)算調(diào)度框架,這兩個(gè)模塊需要分別啟動(dòng),HDFS啟動(dòng)前還需要最后格式化namenode,整體的部署流程如下圖。1、重新編譯HadoopHadoop官方只提供32位版本,64位需要用戶自己編譯,將下載的Hadoop源碼解壓在一個(gè)目錄后,用Maven進(jìn)行編譯,將編譯后的結(jié)果放在/usr/app/hadoop-2.2.0目錄。配置之前在每臺(tái)機(jī)器上建立文件夾/storagel/hdfs/name,/storagel/hdfs/data。這里要涉及到的配置文件有7個(gè):北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第29頁(yè)說(shuō)明hadoop-2.2.0/etc/hadoop/hadoopHadoop環(huán)境變量,如JAVA__HOMEhadoop-2.2.0/etc/hadoop/yarnYARN環(huán)境變量,如JAVA_HOMEhadoop-2.2.0/etc/hadoophadoop-2.2.0/etc/hadoop/core-sHadoop核心配置,如端口hadoop-2.2.0/etc/hadoop/hdfs-shadoop-2.2.0/etc/hadoop/mapred-smap/reduce的配置,如指定調(diào)度器為hadoop-2.2.0/etc/hadoop/yarn-s這個(gè)文件里面保存所有slave節(jié)點(diǎn),從bd34到bd40共7個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)一行。的IO緩沖區(qū)大小,Hadoop的臨時(shí)目錄,Hadoop的用戶權(quán)限控制等,詳見(jiàn)附錄A1。此文件配置了HDFS相關(guān)的信息,包括name和data的存儲(chǔ)目錄,備份NameNode(6)配置文件6:mapred-site.xml此文件配置了map/reduce相關(guān)的信息,如map/reduce的調(diào)度框架配置為Yarn,配置map/reduce的jobhistory地址等,詳見(jiàn)附錄A3。(7)配置文件7:yarn-site.xml此文件配置了Yarn相關(guān)的信息,包括resourcemanager的地址,shuffle所用的類(lèi),Yarn的web頁(yè)面的地址等,詳見(jiàn)附錄A4。3、復(fù)制到其它節(jié)點(diǎn)用之前的remote.sh批處理腳本運(yùn)行scp命令將Hadoop及其配置拷貝到每個(gè)節(jié)點(diǎn)。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)HDFS使用之前需要將namenode格式化,執(zhí)行“hadoopnamenode-format”命令,運(yùn)行start-dfs.sh腳本,可以啟動(dòng)hdfs,啟動(dòng)后在hdfs的web管理界面可以看到如下NameNode’bd33.sm.act.buaa.CID-8eeal4fc-647f-4549-9c12-588e0a4BrowsethefileavatNameNodeLogs9373filesanddirectories,80174blocks=89547t::Win%:00圖4.3HDFS管理界面在HDFS管理界面中,第一個(gè)表格顯示了集群用大小,剩余大小,點(diǎn)擊“LiveNodes”可以查看每個(gè)節(jié)點(diǎn)的詳情,點(diǎn)擊“Browsethe北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第31頁(yè)這里要涉及到的配置文件有3個(gè):表4.4HBase配置文件一覽說(shuō)明(1)配置文件1:hbase-env.sh修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk)。(2)配置文件2:regionservers這個(gè)文件里面保存所有regionserver節(jié)點(diǎn)列表,從bd34到bd40共7個(gè)節(jié)點(diǎn),每個(gè)(3)配置文件3:hbase-site.xml運(yùn)行start-hbase.sh腳本,可以啟動(dòng)HBase,啟動(dòng)后可以在master的60010端口看到北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第32頁(yè)主要是配置ES的存儲(chǔ)位置,數(shù)據(jù)分片的數(shù)目,和索引分析器分詞器的相關(guān)配置,其詳細(xì)配置如下。5、復(fù)制到其它節(jié)點(diǎn)用之前的remote.sh批處理腳本運(yùn)行scp命令將HBase及其配置拷貝到每個(gè)節(jié)點(diǎn)。ES的啟動(dòng)需要在每個(gè)節(jié)點(diǎn)上運(yùn)行命令“elasticsearch-d”。其正確運(yùn)行后,在其管理界面中,用戶可以看到當(dāng)前集群的每個(gè)節(jié)點(diǎn)上,索引分片的存儲(chǔ)情況,還可以利用界本系統(tǒng)中的Spark要運(yùn)行在yarn模式,需要將Spark重新編譯。將下載的Spark源碼包解壓到/usr/app/spark-src目錄,在此目錄用maven編譯spark將生成的spark拷貝到/usr/app/3、拷貝spark到其它節(jié)點(diǎn)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第33頁(yè)StandaloneDeploy模式,需要部署Spark到相關(guān)節(jié)點(diǎn)Mesos模式,需要部署Spark和Mesos到相關(guān)節(jié)點(diǎn)SparkContext和任務(wù)都運(yùn)行在Yarn集群中SparkConext運(yùn)行在本地,task運(yùn)行在Yarn集群中本系統(tǒng)主要采用yarn-standalone模式,提交任務(wù)測(cè)試yarn-standalone模式。Spark任務(wù)運(yùn)行后,在監(jiān)控界面可以看到每個(gè)job的每個(gè)stage的每個(gè)task的進(jìn)度情況。4.3微博數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)4.3.1表和索引的建立HBase中需要建立weibosInfo,userlnfo,commentsInfo,forwardIndex四張表。createuserlnfo','info’create'forwardIndex','inf在Elasticsearch中需要建立微博內(nèi)容的索引,需要索引的字段如表4.6所示。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第34頁(yè)字段名說(shuō)明無(wú)發(fā)布時(shí)間無(wú)轉(zhuǎn)發(fā)原始微博的ià用戶名無(wú)性別無(wú)無(wú)無(wú)HBase的數(shù)據(jù)導(dǎo)入主要通過(guò)put方法實(shí)現(xiàn)。HTable的實(shí)例具有一個(gè)put的方法,其參數(shù)接收一個(gè)Put,也可以接收由Put構(gòu)成的List,用于批量提交數(shù)據(jù)。ES中數(shù)據(jù)的導(dǎo)入通過(guò)bulkindex的方式實(shí)現(xiàn)。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第35頁(yè)89首先,BulkRequestBuilder是個(gè)批量提交的工具,通過(guò)add方法,加入很多個(gè)單獨(dú)的IndexRequestBuilder,IndexRequestBuilder對(duì)應(yīng)一條索引,包含了索引的id和其他字段。BulkRequestBuilder調(diào)用execute).actionGet()方法來(lái)將創(chuàng)建的索引批量提交。4.4組件整合及統(tǒng)一查詢接口的實(shí)現(xiàn)Spark訪問(wèn)HBase需要用到TablelnputFormat和TableOutputFormat,Spark的newAPIHadoopRDD方法用來(lái)執(zhí)行Hadoopmap/reduce任務(wù),將map/reduce任務(wù)的輸出作為一個(gè)RDD,之后就可以像其他RDD一樣就行運(yùn)算了;將數(shù)據(jù)寫(xiě)入HBase時(shí)要用到RDD自帶的saveAsHadoopDataset的方法,通過(guò)設(shè)置jobconf將數(shù)據(jù)作為Hadoopmap/reduce任務(wù)的輸入,進(jìn)而保存到HBase。下面的代碼演示了Scan一段時(shí)間的微博作為SparkRDD的來(lái)源,并且做了一些運(yùn)算之后將結(jié)果保存到HBase。5//需要讀取的hbase表名北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第36頁(yè)代碼的1-4行,構(gòu)建了一個(gè)scan操作,startRow和stopRow指定將要讀取的數(shù)據(jù)范代碼的6-9行,構(gòu)建了Hadoop任務(wù)的conf,主要指定了輸入輸出的表名,SCAN代碼的10-12行,調(diào)用了SparkContext的newAPIHadoopRDD的方法。該方法用于從一個(gè)Hadoop任務(wù)中獲取一個(gè)RDD,該方法定義如下。newAPIHadoopRDD(conf:Configuration,fClass:Class[F],kClass:Class[KnewAPIHadoopRDD接受四個(gè)參數(shù),分別是Hadoop的conf,InputFormat的類(lèi),Key的類(lèi)和Value的類(lèi),方法返回一個(gè)Key、Value對(duì)應(yīng)的RDD。代碼的13-16行,演示了向HBase中寫(xiě)數(shù)據(jù),其寫(xiě)入的數(shù)據(jù)是由Put構(gòu)成的RDD,通過(guò)saveAsHadoopDataset方法將數(shù)據(jù)寫(xiě)入,該方法接受一個(gè)Jobconf類(lèi)型的參數(shù),此參數(shù)中指定要寫(xiě)入的表和OutputFormat類(lèi)型。Spark訪問(wèn)ES主要通過(guò)EsInputFormat和EsOutputFormat實(shí)現(xiàn)23457Configurationconf=newConfigu"crawler/msg/_search?q="+URLEncoderconf.set("es.nodes"conf.set(ConfigurationOptions.ES_HOSTJavaPairRDD<Text,MapWritable>in=sc.newAPIESInputFormat.class,String.class,MapWritable.代碼的1-6行構(gòu)建了ES查詢?nèi)蝿?wù)的配置信息,如ES的節(jié)點(diǎn)IP,要查詢的索引名,要查詢的查詢字符串word等。第7行調(diào)用newAPIHadoopRDD得到以Text,MapWritable為Key和Value的RDD。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第37頁(yè)4.4.3查詢接口的實(shí)現(xiàn)目前微博數(shù)據(jù)分別存儲(chǔ)在HBase和ES中,所以查詢的時(shí)候需要整合二者的查詢結(jié)果,給上層應(yīng)用提供統(tǒng)一的查詢接口。(pageNumber-1)*pageSize,page.getSort().iterator)該方法主要提供給應(yīng)用層調(diào)用,方法有4個(gè)參數(shù),查詢參數(shù)SearchParams,頁(yè)號(hào)pageNumber,頁(yè)大小pageSize,以及排序方式sortType,該方法返回經(jīng)過(guò)Page包裝的微博內(nèi)容,除了包含具體的微博內(nèi)容外,還包含總頁(yè)數(shù),當(dāng)前頁(yè)數(shù)等分頁(yè)信息。查詢參數(shù)searchParams是一個(gè)key-value字典(map),里面的“all”字段代表查詢字符串,“date_from”和“date_to”分別是微博發(fā)布的起止時(shí)間(Date類(lèi)型)。排序方式sortType可以是auto,releasedate,repostcount分別表示按匹配度、發(fā)布時(shí)間、轉(zhuǎn)發(fā)數(shù)排序。4.5微博分類(lèi)的實(shí)現(xiàn)微博的分類(lèi)需要先采集分類(lèi)用的訓(xùn)練集,對(duì)訓(xùn)練集進(jìn)行分詞,提取特征值,再用向量化的數(shù)據(jù)訓(xùn)練出SVM分類(lèi)器,這樣后面就可以對(duì)實(shí)時(shí)微博進(jìn)行分類(lèi)預(yù)測(cè)了。其流程如圖4.4所示。1、微博分詞北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第38頁(yè)微博分類(lèi)第一步是要采集訓(xùn)練集,本系統(tǒng)用一些關(guān)鍵微博賬號(hào)所發(fā)布的微博作為各個(gè)分類(lèi)的樣本,在索引層中采集“新浪體育”、“新浪財(cái)經(jīng)”、“新浪娛樂(lè)”、“新浪科技”、“社會(huì)新聞”五個(gè)賬號(hào)的微博作為“體育”、“財(cái)經(jīng)”、“娛樂(lè)”、“科技”、“社會(huì)”五類(lèi)的訓(xùn)練樣本,共16000條,其中“體育”、“財(cái)經(jīng)”、“娛樂(lè)”、“科技”、“社會(huì)新聞報(bào)道”的微博分別為8000,4000,2000,1000,1000條,以保證每次分類(lèi)的時(shí)候不會(huì)發(fā)生“數(shù)據(jù)集傾斜”。第二步是要對(duì)微博進(jìn)行特征提取和向量化,先對(duì)訓(xùn)練集微博進(jìn)行分詞,提取其中的名詞和動(dòng)詞作為微博特征,用TF-IDF值1241作為該特征的值,得到一個(gè)多維的向量,每一維代表一個(gè)詞在該微博中的特征值。接下來(lái)要開(kāi)始模型的訓(xùn)練,本系統(tǒng)使用spark的MIlib提供的SVM分類(lèi)器,將二分類(lèi)擴(kuò)展為多分類(lèi)。模型訓(xùn)練好之后,就可以開(kāi)始微博分類(lèi)的預(yù)測(cè)了,預(yù)測(cè)時(shí),先將微博分詞后用TF-IDF提取特征值,再用訓(xùn)練好的模型分別比對(duì),得出該微博所屬的分類(lèi)。4.6微博熱點(diǎn)檢測(cè)的實(shí)現(xiàn)4.6.1熱詞檢測(cè)的實(shí)現(xiàn)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第39頁(yè)分詞主要是將輸入微博內(nèi)容切分成一個(gè)個(gè)的單詞,返回一個(gè)詞匯列表,具體的實(shí)現(xiàn)中先用IK分詞器將輸入內(nèi)容分詞后,過(guò)濾掉不需要的詞(單字詞,亂碼詞),再返回詞頻的匯總流程如下圖所示。首先將輸入的日期參數(shù)分割成以天為長(zhǎng)度的時(shí)間段。對(duì)每個(gè)時(shí)間段,先按秒?yún)R總該時(shí)間段每個(gè)詞的頻度,接著以每秒的數(shù)據(jù)計(jì)算出每分鐘的詞頻數(shù)據(jù),接著統(tǒng)計(jì)出每小時(shí)、每天的詞頻情況。3、熱詞檢測(cè)比較當(dāng)前時(shí)段詞頻與歷史時(shí)段詞頻,將變化最大的詞挑選出來(lái)即為此時(shí)段的突發(fā)熱詞,此過(guò)程中會(huì)需要設(shè)置過(guò)濾條件,將一些噪音詞去除。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第40頁(yè)2013-07-1716.00x#23456789圖4.7熱詞檢測(cè)可視化界面4.6.2熱詞聚類(lèi)的實(shí)現(xiàn)熱詞的聚類(lèi)運(yùn)用的Mahout中的Canopy和K-Means聚類(lèi)算法。Pathoutput_kmean=newPath(kHadoopUtil.delete(conf,sHadoopUtil.delete(conf,output_HadoopUtil.delete(conf,outputgenerateSamples();CanopyDriver.buildClusters(conf,samples,ounewCosineDistanceMeasure(),0.9,0.9北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第41頁(yè)words=wordList.toArray(words);KMeansDriver.buildClusters(conf,samples,newPath(canopyOut,Cluster.INITIAL_CLUSTERS_DIR+"-final"loadClustersWritable(newPath(kmeanO事事北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第42頁(yè)5實(shí)驗(yàn)驗(yàn)證前兩個(gè)章節(jié)分別介紹了面向微博的分布式數(shù)據(jù)處理系統(tǒng)的詳細(xì)設(shè)計(jì)及核心功能模塊的具體實(shí)現(xiàn)過(guò)程。本章將對(duì)本系統(tǒng)的功能和性能進(jìn)行測(cè)試和分析。首先介紹實(shí)驗(yàn)環(huán)境,然后針對(duì)系統(tǒng)功能設(shè)計(jì)具體的實(shí)驗(yàn),實(shí)施實(shí)驗(yàn)并分析測(cè)試結(jié)果,驗(yàn)證本系統(tǒng)的可用性。本系統(tǒng)的實(shí)驗(yàn)采用了與平臺(tái)運(yùn)行相同的環(huán)境,詳見(jiàn)4.1.1節(jié)。本實(shí)驗(yàn)的目的是,在配置好實(shí)驗(yàn)環(huán)境之后,在本系統(tǒng)中,驗(yàn)證以下各項(xiàng)功能:1)微博查詢,提供用戶查詢微博的界面;2)微博分類(lèi),演示微博實(shí)時(shí)分類(lèi)的效果;3)熱詞檢測(cè),提供給用戶查詢某一時(shí)間段熱詞的界面;4)熱點(diǎn)事件檢測(cè),用戶能查詢某一時(shí)間段的熱點(diǎn)事件。*c總北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)在首頁(yè)輸入關(guān)鍵字“臨武瓜農(nóng)”,選擇起止時(shí)間后,點(diǎn)擊搜索按鈕后,出現(xiàn)圖5.1全部體育財(cái)經(jīng)娛樂(lè)科技社會(huì)大帥林V:男神一個(gè)月了?另:貌似我在第二學(xué)看見(jiàn)大嘴羅伯茨了,那時(shí)圖5.2微博分類(lèi)展示用5類(lèi)微博各1000條,計(jì)5000條,進(jìn)行分類(lèi)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如下表,每一行是1000條微博樣本,一行的各列代表分類(lèi)結(jié)果。以10屬于體育,10條屬于財(cái)經(jīng),16條屬于娛樂(lè),1條屬于科技,6條屬于社會(huì):表5.1微博分類(lèi)實(shí)驗(yàn)結(jié)果體育娛樂(lè)體育6娛樂(lè)8北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第44頁(yè)類(lèi)別召回率體育娛樂(lè)4、熱詞檢測(cè)的實(shí)驗(yàn)本系統(tǒng)用了2013年7月15日到2013年7月30日這半個(gè)月的近3億條微博作為數(shù)據(jù)集,進(jìn)行了離線分析。以下是針對(duì)微博分析出的2013年7月17日連續(xù)四個(gè)小時(shí)的熱詞:右上角右上角右上角右上角右上角界面界面界面陳紫函界面界面瀏覽瀏覽瀏覽瀏覽卡片卡片瀏覽卡片卡片卡片二維碼二維碼二維碼二維碼主頁(yè)102歲陳浩民主頁(yè)主頁(yè)二維碼主頁(yè)推知電影劇本102歲102歲102歲之后不久主頁(yè)102歲發(fā)直臨武1200公里臨武直落在有喜城市管理行政執(zhí)法局不約而同1200公里恩仇記卷煙廠芝麻糊下面給出了經(jīng)人工搜索后,該段時(shí)間的一些熱門(mén)事件:北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)圖5.3熱詞對(duì)應(yīng)的熱門(mén)微博16天=>0.98181818181818181200公里=>0.9818181818181818女大學(xué)生10天=>0.618181818181818217日郴州陳紫函審查實(shí)名副部級(jí)新華社記者圖5.4熱詞聚類(lèi)的結(jié)果北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第46頁(yè)本實(shí)驗(yàn)的目的是,在配置好實(shí)驗(yàn)環(huán)境之后,不同條件下處理微博數(shù)據(jù),驗(yàn)證以下本1)微博查詢的性能;2)微博批量掃描的性能;3)微博分類(lèi)的性能;4)微博熱詞檢測(cè)的性能;5)微博熱詞聚類(lèi)得到熱點(diǎn)事件的性能。1、微博查詢的性能實(shí)驗(yàn)過(guò)程:調(diào)用查詢接口,統(tǒng)計(jì)查詢一系列關(guān)鍵詞所花的時(shí)間,在瀏覽器上查詢關(guān)鍵詞第一次查詢響應(yīng)時(shí)間第二次查詢響應(yīng)時(shí)間馬航北京實(shí)驗(yàn)結(jié)果分析由于ES及HBase都有緩存的設(shè)計(jì),所以剛查詢過(guò)的關(guān)鍵詞,立即進(jìn)行第二次查詢時(shí),會(huì)直接利用緩存里的結(jié)果,響應(yīng)時(shí)間會(huì)縮短很多。單獨(dú)就首次查詢相應(yīng)時(shí)間而言,通過(guò)幾個(gè)關(guān)鍵詞的查詢響應(yīng)時(shí)間可以看出,其響應(yīng)時(shí)間基本保持在亞秒級(jí)別,基本滿足用戶在網(wǎng)頁(yè)上查詢及時(shí)返回結(jié)果的需要。2、微博批量掃描的性能實(shí)驗(yàn)過(guò)程:通過(guò)Spark掃描某一時(shí)間段的所有微博,統(tǒng)計(jì)不同數(shù)據(jù)規(guī)模下,掃描所花的時(shí)間。北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第47頁(yè)表5.5微博掃描性能實(shí)驗(yàn)結(jié)果時(shí)間段所花時(shí)間77731圖5.5吞吐量與worker數(shù)量的關(guān)系圖5.6吞吐量與微博規(guī)模的關(guān)系北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第48頁(yè)由于本系統(tǒng)采用了Yarn和Spark分布式框架,可以充分利用各臺(tái)機(jī)器的資源,在切分任務(wù)時(shí),能很好的根據(jù)數(shù)據(jù)本地性來(lái)對(duì)輸入數(shù)據(jù)進(jìn)行劃分,避免產(chǎn)生大量的網(wǎng)絡(luò)IO??傮w來(lái)說(shuō)Yarn的資源調(diào)度策略和Spark的并行計(jì)算模型保證了系統(tǒng)較高的擴(kuò)展性和穩(wěn)定性。從實(shí)驗(yàn)結(jié)果中,也驗(yàn)證了本文提出的分布式微博數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的合3、微博分類(lèi)的性能實(shí)驗(yàn)過(guò)程,將5000條微博分類(lèi),統(tǒng)計(jì)所花時(shí)間。實(shí)驗(yàn)結(jié)果:5000條微博分類(lèi)用時(shí)2.4秒,分類(lèi)速度達(dá)到2083(條每秒),完全滿足實(shí)時(shí)微博分類(lèi)的需求。4、微博熱詞檢測(cè)的性能實(shí)驗(yàn)過(guò)程:調(diào)用熱詞查詢的接口,統(tǒng)計(jì)查詢某一小時(shí)的熱詞所花的時(shí)間。時(shí)間段熱詞計(jì)算所花時(shí)間熱詞計(jì)算算法上并沒(méi)有多少?gòu)?fù)雜度,所花時(shí)間主要在某一時(shí)間段所有詞頻的數(shù)據(jù)讀取上,從實(shí)驗(yàn)結(jié)果可以看出熱詞的查詢所花時(shí)間維持在數(shù)秒之類(lèi),基本可以滿足普通交互式查詢的需要。5、熱詞聚類(lèi)得到熱點(diǎn)事件的性能實(shí)驗(yàn)過(guò)程:調(diào)用熱詞聚類(lèi)的接口,統(tǒng)計(jì)對(duì)某一小時(shí)的熱詞及其對(duì)應(yīng)微博聚類(lèi)所花的時(shí)間段Canopy所花時(shí)間Kmeans所花時(shí)間實(shí)驗(yàn)結(jié)果分析北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第49頁(yè)北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第50頁(yè)6總結(jié)與展望平臺(tái)新浪和騰訊的注冊(cè)人數(shù)早已超過(guò)5億。新浪微博每日發(fā)博量超過(guò)一億條,如何從龐北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)第51頁(yè)1.系統(tǒng)更加通用化。本文實(shí)現(xiàn)的原型系統(tǒng)是面向微博數(shù)據(jù)集的,而使用大數(shù)據(jù)的3.改善算法效果。本系統(tǒng)中使用的分類(lèi)算法和熱點(diǎn)檢測(cè)算法仍然比較粗糙,其準(zhǔn)4.提高算法效率。目前本系統(tǒng)的熱詞分析和聚類(lèi)效率都不是很高,尤其是聚類(lèi)的北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)致謝養(yǎng)了我解決問(wèn)題的能力,同時(shí)師兄嚴(yán)謹(jǐn)?shù)目蒲芯窈驼J(rèn)真的工作態(tài)度也讓我受益匪淺。感謝一起在實(shí)驗(yàn)室參與畢設(shè)的10級(jí)本科生馬國(guó)慶、姜皓、林璐、吳博、劉俊偉、北京航空航天大學(xué)畢業(yè)設(shè)計(jì)(論文)參考文獻(xiàn)[3]BigDataDefinition:WikiPEDIA[EB/OL]./wiki/Big_data./blog/2012/03/29/big-data-bTwitter[A].InProceedingsof2010IEEE/WIC/ACMInternationalConferenceonWebIntelligenceandIntelligentAgentTe[8]BrendanO'Connor,MichelKrieger,DavidAhn,TweetMotif:ExploratoTopicSummarizationforTwitter[A].InProceedingsoftheFourthInternationalAAAIConferenceonWeblogsandSocialMe[9]VijayErramilli,XiaoyuanYang,PabloRodrigueSONG:Soc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高鐵建設(shè)項(xiàng)目合作開(kāi)發(fā)協(xié)議
- 農(nóng)業(yè)資源管理實(shí)務(wù)手冊(cè)
- 放射科醫(yī)生雇傭合同
- 養(yǎng)殖場(chǎng)轉(zhuǎn)讓協(xié)議合同
- 汽車(chē)融資租賃合同
- 2025年克孜勒蘇州道路客貨運(yùn)輸從業(yè)資格證b2考試題庫(kù)
- 小學(xué)二年級(jí)下冊(cè)數(shù)學(xué)除法口算題專(zhuān)項(xiàng)訓(xùn)練
- 2025年吉林貨運(yùn)從業(yè)資格證考試題技巧及答案
- 2025年毫州貨運(yùn)上崗證考試考哪些科目
- 電力系統(tǒng)集成合同(2篇)
- 膿包瘡護(hù)理查房
- 《信號(hào)工程施工》課件 項(xiàng)目一 信號(hào)圖紙識(shí)讀
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
- 設(shè)計(jì)院個(gè)人年終總結(jié)
- 中石油高空作業(yè)施工方案
- 避孕藥具知識(shí)培訓(xùn)
- 醫(yī)保違規(guī)檢討書(shū)
- 鋼結(jié)構(gòu)實(shí)習(xí)報(bào)告
- 2024年建房四鄰協(xié)議范本
- FTTR-H 全光組網(wǎng)解決方案裝維理論考試復(fù)習(xí)試題
- 2024年廣東佛山市中醫(yī)院三水醫(yī)院招聘61人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論