淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)_第1頁
淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)_第2頁
淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)_第3頁
淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)_第4頁
淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

淘寶分布式大數(shù)據(jù)及實時流數(shù)據(jù)技術(shù)架構(gòu)提綱? 背景? 目標(biāo)? 傳統(tǒng)方案與業(yè)界進展? 設(shè)計理念(重點)? 技術(shù)架構(gòu)? 要點? 例子? 系統(tǒng)邊界? 計劃背景? 應(yīng)用背景–

數(shù)據(jù)量急劇增加–

Web

1.0

web

2.0,

publicego

net–

電子商務(wù)、移動互聯(lián)網(wǎng)、移動支付–

欺詐、風(fēng)控對海量交易實時性–

用戶體驗的個性化和實時性–

由點到面?

實時搜索、個人實時信息服務(wù)、SNS等背景? 技術(shù)背景MapReduce、Dryad等全量/增量計算平臺–

S4、Storm等流計算框架CEP以及EDA模型Pregel等圖計算模型傳統(tǒng)方案與業(yè)界進展? 傳統(tǒng)方案–

MAPREDUCE:HDFS加載,存儲LOCALITY(容錯性),順序IO,存儲HDFS, 單輸入,單輸出獨立數(shù)據(jù)Di Latency(i)輸入輸入計算過程下載Mapshuffle輸出獨立數(shù)據(jù)DnlatencyLatency(n)reduceMapreduce

JobIProcess

JobHadoop之于實時? 問題(hadoop本質(zhì)是為全量而生)–

任務(wù)內(nèi)串行–

重吞吐量,響應(yīng)時間完全沒有保證–

中間結(jié)果不可見,不可共享–

單輸入單輸出,鏈?zhǔn)嚼速M嚴重–

鏈?zhǔn)組R不能并行–

粗粒度容錯,可能會造成陷阱–

圖計算不友好–

迭代計算不友好圖計算? MapReduce為什么不適合圖計算?–

迭代–

邊的量級遠大于節(jié)點? 圖計算特點–

適應(yīng)于事件機制,規(guī)模大(邊),但單條數(shù)據(jù)不大–

很難分布式(locality、partition,一直都是難點)–

容錯性Google

Pregel?

本質(zhì)上還是全量?

中間結(jié)果不可見超步過多(IProcess)Pregel

vs.

IProcess圖計算IProcess

亂序執(zhí)行,避免了不必要的超步

實時圖計算,圖計算注定慢,但是效果的可以漸顯。迭代計算? 特點–

結(jié)構(gòu)固定? 本質(zhì)Update? 方案–

傳統(tǒng)MR模型,hadoop效率太低HaloopIprocess0.4實時計算業(yè)界進展S4–

2010年底,Yahoo,0.3,windowtodo業(yè)界界進進展展?Storm:2011.9,twitter,業(yè)界進進展‐Storm系統(tǒng)邊邊界S4、Storm–只能處處理“獨立”的流數(shù)數(shù)據(jù)–無法處處理““復(fù)雜雜”事事件(condition),需要要用戶戶handle復(fù)雜的的條件件–不能很很好的的適用用于大大部分分需要要相關(guān)關(guān)數(shù)據(jù)據(jù)集執(zhí)執(zhí)行計計算算和流流數(shù)據(jù)據(jù)保序序的實實時場場景–容錯性性較差差–集群無無法動動態(tài)擴擴展業(yè)界進進展?其它StreamBaseBorealisStreamInsightPercolatorHbasecoprocessorPregeldremel–…設(shè)計理理念負責(zé)任任(Condition)–MapReduce本質(zhì)上上保證證了Reduce觸發(fā)的的條件件,即即所所有map都結(jié)束束(但但這點點很容容易被被忽視視)。。–實時計計算Condition很容易易被忽忽略。很多只只是考考慮了streaming,而沒沒有考考慮Condition。實時(Streaming)成本(Throughput)?有所為為有所所不為為–通用計計算框框架,,用戶組組件只只需關(guān)關(guān)心業(yè)業(yè)務(wù)邏邏輯。–涉及到到業(yè)務(wù)務(wù)邏輯輯統(tǒng)統(tǒng)統(tǒng)不做做。設(shè)計理理念?舉例–實時JOIN(后面有有具體體代碼碼)在storm(不考考慮Condition)框架架下,,實現(xiàn)join,需需要用用戶代代碼自自己hold條件,,判斷條條件,進而觸觸發(fā)join后的邏邏輯處處理。。但在在我們們的設(shè)設(shè)計理理念下下,這些condition完全可可以抽抽象為為復(fù)雜雜完備備事件件模型,所所以作作為通通用系系統(tǒng)應(yīng)應(yīng)該提提供condition的通用用功功能,,用戶只只需進進行配配置而而不是是編碼碼就可可以完成condition,那么么實時join在iprocess體系下下,用戶無無需編編碼處處理condition,而只只需處處理join后的的邏輯輯。IProcess?通用的的分布布式流流數(shù)據(jù)據(jù)實時時與持持續(xù)計計算平平臺–有向圖圖模型型?節(jié)點為為用戶戶編寫寫的組組件、邊為為事件件–觸發(fā)器器模式式–完備事件驅(qū)驅(qū)動的的架構(gòu)構(gòu),定定制復(fù)雜完完備事件條條件–支持相相關(guān)集集計算算和Reduce時數(shù)據(jù)據(jù)集生生成(k‐mean)–樹存儲儲模型型,支持不不同級級別定定制不不同一一致性性模型型和事事務(wù)務(wù)模型型–可擴展展的編編程模模型?提出并并支持持樹型型實時MR和增量/定時MRIProcess?通用的的分布布式流流數(shù)據(jù)據(jù)實時時與持持續(xù)計計算平平臺–持續(xù)與AdHoc計算(endpoint)–微內(nèi)核核+組件系系統(tǒng)(系統(tǒng)級級組件件+用戶組組件)–多任務(wù)務(wù)服務(wù)務(wù)化,,任務(wù)務(wù)沙箱箱,優(yōu)優(yōu)先級級,任務(wù)務(wù)調(diào)度度–兩級容容錯::應(yīng)用用級和和系統(tǒng)統(tǒng)級,,運算算時動動態(tài)擴擴容–系統(tǒng)級級組件件系統(tǒng)統(tǒng):實實時join、二級級索引引、倒倒排表表、物化視視圖圖、counter…–分布式式系統(tǒng)統(tǒng)的容容錯,,自動動擴展展,通通訊,,調(diào)度度–保序…IProcess?基礎(chǔ)的的運行行系統(tǒng)統(tǒng)–引入CEP規(guī)則引引擎模模塊((RPM),類類似hive與MR–引入數(shù)數(shù)據(jù)集集控制制(用用于機機器學(xué)學(xué)習(xí))),BI–引入類類SQL語言,,DSL引擎–引入圖圖計算算模型型邏輯模模型持續(xù)計計算Ad‐HocQuery–不可枚枚舉用戶搜搜索(online),DBSQL?持續(xù)計計算–計算相相對固固定、、可枚枚舉–數(shù)據(jù)流流動SQL、MRIProcess整體架架構(gòu)整體拓拓撲運行過過程?三個步步驟–簡單事事件發(fā)發(fā)射(分布式)–復(fù)雜事事件完完備性性判斷斷(集集中式式、分分布式式)?分布式式事務(wù)務(wù)–盡量避避免((機制制保證證)–強事務(wù)務(wù)(MVCC)、邏邏輯事事務(wù)、弱事事務(wù)–觸發(fā)下下一個個環(huán)節(jié)節(jié)IProcess的存儲儲?樹結(jié)構(gòu)構(gòu)的存存儲–不同的的一致致性和和事務(wù)務(wù)模型型?區(qū)分實實時數(shù)數(shù)據(jù)與與其它它數(shù)據(jù)據(jù)的存存儲?兩級容容錯–應(yīng)用級級和系系統(tǒng)級級?運算時時動態(tài)態(tài)擴容容?保序Latency、throughput、可靠靠性–動態(tài)tradeoffIProcess的存儲儲MR模型的的本質(zhì)質(zhì)Reduce(key,valueList,context)實現(xiàn)STCacheStrategy接口QStore:持久久化存存儲。。IProcess的存儲儲‐amber與MR容錯性性的區(qū)區(qū)別::應(yīng)用用級體體現(xiàn)在在amber,系統(tǒng)統(tǒng)級體體現(xiàn)在在st與gtIProcess的存儲儲‐GlobalTableHbase維護分分支Segment分裂策策略Coprocessor沙箱類Redis接口–容量規(guī)規(guī)劃–剝離行行事務(wù)務(wù)YahooOmidIProcess要點回回顧?完備事件模模型–基礎(chǔ)模模型:觸發(fā)器器模式式?可擴展展的編編程模模型(類似于HIVE與hadoop的關(guān)系)Spark(類似storm,完全全的流流處理理,無condition)Dumbo(實時時MapReduce框架))Graphcomputing(實時時pregel)SQL:HiveIProcess要點回回顧?樹狀存存儲?事務(wù)模模型–邏輯事事務(wù)–弱事務(wù)務(wù)–強事務(wù)務(wù)?運行時時擴容容?系統(tǒng),,應(yīng)用用量級級容錯錯?保序應(yīng)用場場景特特點?響應(yīng)時時間:實時–毫秒級級別((子圖圖)–秒級別–分鐘級別別?圖復(fù)雜度度–節(jié)點簡單單且重、圖復(fù)雜–節(jié)點簡單單但輕、、圖復(fù)雜雜–節(jié)點復(fù)雜雜但輕、圖簡單–節(jié)點復(fù)雜雜且重、、圖簡單單應(yīng)用場景景特點?語言C++、Java、ShellSQL–規(guī)則DSL?模型–觸發(fā)器、簡單事件、實時MR、圖計算–…應(yīng)用架構(gòu)構(gòu)Howtouse??使用IProcess需要準(zhǔn)備備什么?–組件集–配置(有向圖,,事件)–拓撲Howtouse?Ademo?簡化的資資訊實時時搜索實時搜索索用戶API簡介?系統(tǒng)級((高級接接口)STCacheStrategyLogicalConflictResolverLazyConflictResovlerIUserDefinedConditionISeedGeneratorIPartitioner用戶API簡介?應(yīng)用級IProcess原生IProcessModule(JobContext)SparkEventProcessor(EventContext)Dumbo(實時Mapreduce)MapperPreparerReducerMerger–使用MapperContext、ReducerContext等系統(tǒng)API簡介?重要接口和類類TableStrategyStorageStrategySegmentNameMappingSegment。SequencedSegmentTimedSegmentNameMappingRecordDumbo例子?代碼直接復(fù)用用,效果大不不一樣?例子(實時,中間結(jié)結(jié)果可見)wordCount(與全量mapreduce區(qū)別在于:dumbo下的wordcount,實時reduce結(jié)果是可見的的,即整個計算結(jié)果中間間可被用戶訪訪問)–訪問記錄一次map、多次reduceSQL執(zhí)行K‐mean聚類實時join?代碼見下頁Dumbo例子?實時join代碼(join好好一條輸出一一條)classMemberMapper:publicMapper{public:voidmap(conststring&key,constRecordPtrvalue,MapperContextPtrcontext){context‐>add(value‐>get_field("member_id").toString(),value,"member");}}classProductMapper:publicMapper{public:voidmap(conststring&key,constRecordPtrvalue,MapperContextPtrcontext){context‐>add(value‐>get_field("member_id").toString(),value,"product");}}Dumbo例子?實時join代碼(reduce觸發(fā)的條件件在配置文文件中,即相同joinkey的a數(shù)據(jù)和b數(shù)據(jù)都ready(condition),系統(tǒng)才會實時調(diào)用reduce-大家可以比較較在storm下實現(xiàn)實實時join的的代碼)int32_treduce(stringkey,map<string,RecordIterator>taged_value_iterator,ReducerContextcontext){stringtag_a=“member";stringtag_b=“product";RecordIteratoriterator_a=taged_value_iterator.find("A")‐>second;RecordIteratoriterator_b=taged_value_iterator.find("B")‐>second;RecordPtrrecord_a=iterator_a.begin();while(record_a){RecordPtrrecord_b=iterator_b.begin();while(record_b){Recordresult=record_a‐‐>join(record_b);context‐>add(result);//生成成join的結(jié)結(jié)果果record_b=iterator_b.next();}record_a=iterator_a.next();}}觸發(fā)發(fā)器器模模式式例例子子?SNS推薦薦系系統(tǒng)統(tǒng)–用戶戶將將公公司司名名修修改,引發(fā)發(fā)推推薦薦的實時變化化–某用用戶戶增增加加一一個個好好友友會會引引發(fā)發(fā)對對自自己己和和對對別別人人的的推推薦薦變變化化–實時時人人立立方(刪除除關(guān)關(guān)系系)風(fēng)控控CEP–離線線風(fēng)風(fēng)險險控控制制–在線線風(fēng)風(fēng)險險控控制制系統(tǒng)統(tǒng)邊邊界界?目前前的的問問題題–跨語語言言–吞吐吐量量–易用用性性–服務(wù)務(wù)化化,,云云???邊界界–計算算可可枚枚舉舉–計算算可可加加–依賴賴相相關(guān)關(guān)集集較較小小?建模模介于于BSP與DOT之間間Runtime的的executeplan優(yōu)優(yōu)化化目標(biāo)標(biāo)?打造造平平臺臺–實時時計計算算–持續(xù)續(xù)計計算算–Iprocess將專專注注于于完完備備事事件件機機制制。。?只提提供供最最基基本本的的功功能能,提供供高高度度可可定定制制的的接接

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論