Hadoop在淘寶的應(yīng)用搜索中心_第1頁(yè)
Hadoop在淘寶的應(yīng)用搜索中心_第2頁(yè)
Hadoop在淘寶的應(yīng)用搜索中心_第3頁(yè)
Hadoop在淘寶的應(yīng)用搜索中心_第4頁(yè)
Hadoop在淘寶的應(yīng)用搜索中心_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1Hadoop在淘寶的應(yīng)用淘寶搜索中心恨少2目錄Hadoop介紹Hadoop在淘寶中的應(yīng)用一個(gè)實(shí)際的應(yīng)用案例淘寶網(wǎng)搜索整體架構(gòu)Hadoop介紹 Hadoop是Apache組織的一個(gè)開(kāi)源的分布式計(jì)算框架,框架中最核心的設(shè)計(jì)是HDFS和Map-Reduce?;诙逪adoop有一系列子項(xiàng)目,它們廣泛用于海量數(shù)據(jù)處理,非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)等領(lǐng)域。主要子項(xiàng)目HadoopCommon:ThecommonutilitiesthatsupporttheotherHadoopsubprojects.Chukwa:Adatacollectionsystemformanaginglargedistributedsystems.HBase:Ascalable,distributeddatabasethatsupportsstructureddatastorageforlargetables.HDFS:Adistributedfilesystemthatprovideshighthroughputaccesstoapplicationdata.Hive:Adatawarehouseinfrastructurethatprovidesdatasummarizationandadhocquerying.MapReduce:Asoftwareframeworkfordistributedprocessingoflargedatasetsoncomputeclusters.Pig:Ahigh-leveldata-flowlanguageandexecutionframeworkforparallelcomputation.ZooKeeper:Ahigh-performancecoordinationservicefordistributedapplications.誰(shuí)在使用HadoopAlibabaAmazonAdobeBaiduFacebookHuluMicrosoftYahoo!WhyHadoop?可擴(kuò)展:不論是存儲(chǔ)的可擴(kuò)展還是計(jì)算的可擴(kuò)展都是Hadoop的設(shè)計(jì)根本。經(jīng)濟(jì):框架可以運(yùn)行在任何普通的PC上??煽浚悍植际轿募到y(tǒng)的備份恢復(fù)機(jī)制以及Map-Reduce的任務(wù)監(jiān)控保證了分布式處理的可靠性。高效:分布式文件系統(tǒng)的高效數(shù)據(jù)交互實(shí)現(xiàn)以及Map-Reduce結(jié)合LocalData處理的模式,為高效處理海量的信息作了基礎(chǔ)準(zhǔn)備。HDFS簡(jiǎn)介

HDFS(HadoopDistributedFileSystem)是Hadoop提供的基礎(chǔ)設(shè)施,Hadoop其它子項(xiàng)目均依賴于HDFS。 作為一個(gè)分布式文件系統(tǒng),HDFS用于部署在低成本的硬件之上(使用普通PC的硬盤),因此其具有很高的容錯(cuò)性。HDFS示意圖HDFSShell HDFS除了提供API之外,還提供了一個(gè)HDFSShell供用戶訪問(wèn)文件系統(tǒng)。Shell提供了ls、cat、cp、touch、mkdir、rmr、tail、chmod、chown等接口。Map-Reduce介紹 Map-Reduce是一個(gè)分布式的計(jì)算框架,用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。Map-Reduce大大降低了分布式計(jì)算的難度。 一個(gè)Map/Reduce作業(yè)的輸入和輸出類型如下所示:

(input)<k1,v1>->map-><k2,v2>->combine-><k2,v2>->reduce-><k3,v3>(output)Map-Reduce示意圖一個(gè)簡(jiǎn)單的例子

WordCount是一個(gè)簡(jiǎn)單的應(yīng)用,它可以計(jì)算出指定數(shù)據(jù)集中每一個(gè)單詞出現(xiàn)的次數(shù)。 比如文件中包含如下內(nèi)容。數(shù)據(jù)量可以非常大,它們保存在大量的文件中(HDFS上)。 HelloWorldByeWorld HelloHadoopGoodbyeHadoop 輸出結(jié)果如下: Bye1

Goodbye1

Hadoop2

Hello2

World2

map函數(shù) publicvoidmap(LongWritablekey,Textvalue,OutputCollector<Text,IntWritable>output,Reporterreporter)throwsIOException{ Stringline=value.toString(); StringTokenizertokenizer=newStringTokenizer(line); while(tokenizer.hasMoreTokens()){ word.set(tokenizer.nextToken()); output.collect(word,one); } }reduce函數(shù) publicvoidreduce(Textkey,Iterator<IntWritable>values,OutputCollector<Text,IntWritable>output,Reporterreporter) throwsIOException{ intsum=0; while(values.hasNext()){ sum+=values.next().get(); } output.collect(key,newIntWritable(sum)); }Hive簡(jiǎn)介

Hive是一個(gè)基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)分析框架,由Facebook貢獻(xiàn)給了開(kāi)源社區(qū)。Hive定義了一種類似于SQL的語(yǔ)言-HQL,使用HQL可以方便使用SQL類似的語(yǔ)句分析數(shù)據(jù),大大降低了數(shù)據(jù)分析的難度。

Hive支持Map-Reduce。Hive支持UDAF(UserDefinedAggregateFunction,用戶自定義的聚合函數(shù))。HadoopJobWebUIDougCutting介紹 DouglasReedCutting是開(kāi)源搜索技術(shù)的先驅(qū)。他先后在Excite,AppleInc.andXeroxPARC等公司工作過(guò)。他發(fā)起的開(kāi)源項(xiàng)目有Lucene、Hadoop和Nutch。

DouglasReedCutting目前在Cloudera公司工作。該公司致力于開(kāi)源云計(jì)算(Hadoop)的商業(yè)應(yīng)用。之前DouglasReedCutting在Yahoo!工作。Hadoop在淘寶的應(yīng)用

淘寶網(wǎng)目前有會(huì)員近2億,日均UV高達(dá)4000萬(wàn),日交易量高達(dá)數(shù)億元。作為目前亞洲最大的B2C/C2C網(wǎng)站,淘寶每天會(huì)產(chǎn)生大量的數(shù)據(jù)。如何利用這些數(shù)據(jù)為用戶提供更好的服務(wù)以及發(fā)掘數(shù)據(jù)的價(jià)值是個(gè)難題。 目前阿里集團(tuán)部署了一個(gè)大規(guī)模的Hadoop集群,擁有PCServer近千臺(tái),服務(wù)器均配置16核心CPU和24GB內(nèi)存,存儲(chǔ)總量達(dá)PB級(jí)別。 集團(tuán)內(nèi)部各子公司包括B2B和淘寶一起分享該集群。

目前Hadoop主要應(yīng)用于以下幾個(gè)方面: 1、為搜索引擎提供數(shù)據(jù)建索引。

dump中心每天凌晨從數(shù)據(jù)庫(kù)將表拉到HDFS上,各系統(tǒng)使用各自的Map-Reduce算法生成需要的doc文檔。 2、用戶商務(wù)智能分析,比如使用協(xié)同過(guò)濾算法為用戶推薦商品。淘寶搜索引擎建索引流程

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)HDFS,運(yùn)行Map-ReduceJob生成需要的doc文件以建索引引擎服務(wù)器引擎服務(wù)器引擎服務(wù)器build服務(wù)器build服務(wù)器build服務(wù)器dump一個(gè)實(shí)際的應(yīng)用案例 定制化搜索項(xiàng)目,在用戶收藏或者購(gòu)買的店鋪內(nèi)搜索寶貝。項(xiàng)目實(shí)施過(guò)程中,使用Hive替代了自己編寫HadoopMap-ReduceJob的方案。

需要處理的數(shù)據(jù)

1、用戶的收藏信息。包括兩個(gè)文件,一個(gè)是用戶的收藏條目(collect_item);另一個(gè)是收藏條目的詳細(xì)信息(collect_info)。收藏信息只有全量數(shù)據(jù)。collect_item和collect_info均有數(shù)百GB。 2、用戶的購(gòu)買信息(pay)。購(gòu)買信息以增量的方式每天產(chǎn)生一個(gè)文件。由于數(shù)據(jù)量比較大,目前只使用三個(gè)月的數(shù)據(jù)。 3、因?yàn)榍岸酥荒苁褂觅u家的數(shù)字id去搜索寶貝,而collect_item沒(méi)有賣家的數(shù)字id,因此必須連接用戶數(shù)據(jù)文件。用戶數(shù)據(jù)文件有數(shù)百GB。第一種方案 項(xiàng)目實(shí)施首先選擇的方案是自己編寫Map-ReduceJob來(lái)生成相關(guān)的文檔數(shù)據(jù)。使用Hadoop二次排序的方式連接各文件。 主要優(yōu)點(diǎn): 1、過(guò)程完全可控,依賴少。

2、效率較高。 主要缺點(diǎn):

1、需要分別針對(duì)收藏?cái)?shù)據(jù)和交易數(shù)據(jù)寫兩個(gè)HadoopJob。 2、代碼量比較多,可維護(hù)性較差。新方案-使用Hive 由于數(shù)據(jù)量比較大,有些記錄格式有錯(cuò),使得自己編寫的Map-ReduceJob生成的數(shù)據(jù)總是少了一些。鑒于Hive諸多優(yōu)點(diǎn),所以項(xiàng)目中途改用Hive重寫。 主要優(yōu)點(diǎn):

1、使用HQL,站在更高的邏輯層次上,代碼量少,可維護(hù)性非常好。

2、只需編寫一個(gè)UDAF便可聚合同一買家對(duì)應(yīng)的收藏和交易買家列表。 主要缺點(diǎn):

1、運(yùn)行速度略慢。

2、依賴Hive,需要在生產(chǎn)環(huán)境部署Hive。處理過(guò)程

1、連接collect_item和用戶表,生成新表t1。 2、連接t1和collect_info,生成新表t2。

3、將交易表做去重處理,生成新表t3。

4、對(duì)t2和t3分別使用UDAF處理,生成如下結(jié)構(gòu)(大概數(shù)千萬(wàn)條)。 <doc> type=0 #type為0表示收藏記錄,type為1表示購(gòu)買記錄 cid=99999643 #用戶的數(shù)字id nick=ltvlyc #用戶的昵稱 sid=34755926345891714593849912999374770211586320857231804838 #關(guān)聯(lián)的賣家數(shù)字id列表 </doc>建Hive表 $HIVE"CREATEEXTERNALTABLEcustomed_search_collect_item_$day ( collect_item_idstring, titlestring, t3string, seller_id_strstring, seller_nickstring, t6string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILELOCATION'$itemPath';";編寫UDAF 使用Java編寫UDAF以聚合同一key的數(shù)據(jù),即和同一個(gè)買家相關(guān)的賣家。 $HIVE"addjar$WORKDIR/UDAF_2.0.jar; createtemporaryfunctioncustomed_search_joinas'taobao.GenerateXML'; setmapred.reduce.tasks=300; setpress.output=false; INSERTOVERWRITETABLEcustomed_search_pay_XML_$day selectcustomed_search_join(1,winner_id_dig,winner_nick,seller_id_dig) fromcustomed_search_pay_temp_$daygroupbywinner_id_dig;"; 淘寶目前使用阿里集團(tuán)內(nèi)部的iSearch(眾多工具組成的工具集)建索引和提供搜索服務(wù)。iSearch支持多層架構(gòu),以組成大的搜索集群。將索引數(shù)據(jù)切分后推送到搜索服務(wù)器

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論