淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)課件_第1頁(yè)
淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)課件_第2頁(yè)
淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)課件_第3頁(yè)
淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)課件_第4頁(yè)
淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩91頁(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)介

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

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

Web

1.0

web

2.0,

publicego

net–

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

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

用戶體驗(yàn)的個(gè)性化和實(shí)時(shí)性–

由點(diǎn)到面?

實(shí)時(shí)搜索、個(gè)人實(shí)時(shí)信息服務(wù)、SNS等背景3背景? 技術(shù)背景MapReduce、Dryad等全量/增量計(jì)算平臺(tái)–

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

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

JobIProcess

Job傳統(tǒng)方案與業(yè)界進(jìn)展? 傳統(tǒng)方案輸入輸入計(jì)算過(guò)程下載輸出獨(dú)立5Hadoop之于實(shí)時(shí)? 問(wèn)題(hadoop本質(zhì)是為全量而生)–

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

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

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

單輸入單輸出,鏈?zhǔn)嚼速M(fèi)嚴(yán)重–

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

粗粒度容錯(cuò),可能會(huì)造成陷阱–

圖計(jì)算不友好–

迭代計(jì)算不友好Hadoop之于實(shí)時(shí)? 問(wèn)題(hadoop本質(zhì)是為全量而生)6圖計(jì)算? MapReduce為什么不適合圖計(jì)算?–

迭代–

邊的量級(jí)遠(yuǎn)大于節(jié)點(diǎn)? 圖計(jì)算特點(diǎn)–

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

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

容錯(cuò)性Google

Pregel?

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

中間結(jié)果不可見(jiàn)超步過(guò)多(IProcess)圖計(jì)算? MapReduce為什么不適合圖計(jì)算?–迭代7Pregel

vs.

IProcess圖計(jì)算IProcess

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

實(shí)時(shí)圖計(jì)算,圖計(jì)算注定慢,但是效果的可以漸顯。Pregelvs.IProcess圖計(jì)算IProcess8迭代計(jì)算? 特點(diǎn)–

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

傳統(tǒng)MR模型,hadoop效率太低HaloopIprocess0.4迭代計(jì)算? 特點(diǎn)9實(shí)時(shí)計(jì)算業(yè)界進(jìn)展S4–

2010年底,Yahoo,0.3,windowtodo實(shí)時(shí)計(jì)算業(yè)界進(jìn)展S410業(yè)界進(jìn)展? Storm:2011.9,twitter,0.5.2業(yè)界進(jìn)展? Storm:2011.9,twitter,0.511業(yè)界進(jìn)展‐Storm業(yè)界進(jìn)展‐Storm12系統(tǒng)邊界S4、Storm–

只能處理“獨(dú)立”的流數(shù)據(jù)–

無(wú)法處理“復(fù)雜”事件(condition),需要用戶handle復(fù)雜的條件–

不能很好的適用于大部分需要相關(guān)數(shù)據(jù)集執(zhí)行計(jì)算和流數(shù)據(jù)保序的實(shí)時(shí)場(chǎng)景–

容錯(cuò)性較差–

集群無(wú)法動(dòng)態(tài)擴(kuò)展系統(tǒng)邊界S4、Storm13業(yè)界進(jìn)展? 其它StreamBaseBorealisStreamInsightPercolatorHbase

coprocessorPregeldremel–

…業(yè)界進(jìn)展? 其它14設(shè)計(jì)理念負(fù)責(zé)任(Condition)–

MapReduce本質(zhì)上保證了Reduce觸發(fā)的條件,即所有map都結(jié)束(但這點(diǎn)很容易被忽視)。–

實(shí)時(shí)計(jì)算Condition很容易被忽略。很多只是考慮了streaming,而沒(méi)有考慮Condition。實(shí)時(shí)(Streaming)成本(Throughput)? 有所為有所不為–

通用計(jì)算框架,用戶組件只需關(guān)心業(yè)務(wù)邏輯。–

涉及到業(yè)務(wù)邏輯統(tǒng)統(tǒng)不做。設(shè)計(jì)理念負(fù)責(zé)任(Condition)15設(shè)計(jì)理念? 舉例–

實(shí)時(shí)JOIN(后面有具體代碼)在storm(不考慮Condition)框架下,實(shí)現(xiàn)join,需要用戶代碼自己hold條件,判斷條件,進(jìn)而觸發(fā)join后的邏輯處理。但在我們的設(shè)計(jì)理念下,這些condition完全可以抽象為復(fù)雜完備事件模型,所以作為通用系統(tǒng)應(yīng)該提供condition的通用功能,用戶只需進(jìn)行配置而不是編碼就可以完成condition,那么實(shí)時(shí)join在iprocess體系下,用戶無(wú)需編碼處理condition,而只需處理join后的邏輯。設(shè)計(jì)理念? 舉例16IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)–

有向圖模型? 節(jié)點(diǎn)為用戶編寫的組件、邊為事件–

觸發(fā)器模式–

完備事件驅(qū)動(dòng)的架構(gòu),定制復(fù)雜完備事件條件–

支持相關(guān)集計(jì)算和Reduce時(shí)數(shù)據(jù)集生成(k‐mean)–

樹存儲(chǔ)模型,支持不同級(jí)別定制不同一致性模型和事務(wù)模型–

可擴(kuò)展的編程模型? 提出并支持樹型實(shí)時(shí)MR和增量/定時(shí)MRIProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)17IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)–

持續(xù)與AdHoc計(jì)算(endpoint)–

微內(nèi)核+組件系統(tǒng)(系統(tǒng)級(jí)組件+用戶組件)–

多任務(wù)服務(wù)化,任務(wù)沙箱,優(yōu)先級(jí),任務(wù)調(diào)度–

兩級(jí)容錯(cuò):應(yīng)用級(jí)和系統(tǒng)級(jí),運(yùn)算時(shí)動(dòng)態(tài)擴(kuò)容–

系統(tǒng)級(jí)組件系統(tǒng):實(shí)時(shí)join、二級(jí)索引、倒排表、物化視圖、counter…–

分布式系統(tǒng)的容錯(cuò),自動(dòng)擴(kuò)展,通訊,調(diào)度–

保序…IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)18IProcess? 基礎(chǔ)的運(yùn)行系統(tǒng)–

引入CEP規(guī)則引擎模塊(RPM),類似hive與MR–

引入數(shù)據(jù)集控制(用于機(jī)器學(xué)習(xí)),BI–

引入類SQL語(yǔ)言,DSL引擎–

引入圖計(jì)算模型IProcess? 基礎(chǔ)的運(yùn)行系統(tǒng)19邏輯模型邏輯模型20淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)21淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)22持續(xù)計(jì)算Ad‐Hoc

Query–

不可枚舉用戶搜索(online),DB

SQL? 持續(xù)計(jì)算–

計(jì)算相對(duì)固定、可枚舉–

數(shù)據(jù)流動(dòng)SQL、MR持續(xù)計(jì)算Ad‐HocQuery23

IProcess整體架構(gòu)整體拓?fù)?IProcess整體架構(gòu)整體拓?fù)?4運(yùn)行過(guò)程? 三個(gè)步驟–

簡(jiǎn)單事件發(fā)射(分布式)–

復(fù)雜事件完備性判斷(集中式、分布式)?

分布式事務(wù)–

盡量避免(機(jī)制保證)–

強(qiáng)事務(wù)(MVCC)、邏輯事務(wù)、弱事務(wù)–

觸發(fā)下一個(gè)環(huán)節(jié)運(yùn)行過(guò)程? 三個(gè)步驟25IProcess的存儲(chǔ)? 樹結(jié)構(gòu)的存儲(chǔ)–

不同的一致性和事務(wù)模型? 區(qū)分實(shí)時(shí)數(shù)據(jù)與其它數(shù)據(jù)的存儲(chǔ)? 兩級(jí)容錯(cuò)–

應(yīng)用級(jí)和系統(tǒng)級(jí)? 運(yùn)算時(shí)動(dòng)態(tài)擴(kuò)容? 保序Latency、throughput、可靠性–

動(dòng)態(tài)tradeoffIProcess的存儲(chǔ)? 樹結(jié)構(gòu)的存儲(chǔ)26IProcess的存儲(chǔ)MR模型的本質(zhì)Reduce(key,valueList,context)實(shí)現(xiàn)STCacheStrategy接口QStore:持久化存儲(chǔ)。IProcess的存儲(chǔ)MR模型的本質(zhì)Reduce(key,v27IProcess的存儲(chǔ)‐amber與MR容錯(cuò)性的區(qū)別:應(yīng)用級(jí)體現(xiàn)在amber,系統(tǒng)級(jí)體現(xiàn)在st與gtIProcess的存儲(chǔ)‐amber與MR容錯(cuò)性的區(qū)別:應(yīng)用級(jí)28IProcess的存儲(chǔ)‐

GlobalTableHbase維護(hù)分支Segment分裂策略Coprocessor沙箱類Redis接口–

容量規(guī)劃–

剝離行事務(wù)Yahoo

OmidIProcess的存儲(chǔ)‐GlobalTableHbase維29IProcess要點(diǎn)回顧? 完備事件模型–

基礎(chǔ)模型:觸發(fā)器模式? 可擴(kuò)展的編程模型(類似于HIVE與hadoop的關(guān)系)Spark(類似storm,完全的流處理,無(wú)condition)Dumbo(實(shí)時(shí)MapReduce框架)Graph

computing(實(shí)時(shí)pregel)SQL:HiveIProcess要點(diǎn)回顧? 完備事件模型L:Hive30IProcess要點(diǎn)回顧? 樹狀存儲(chǔ)? 事務(wù)模型–

邏輯事務(wù)–

弱事務(wù)–

強(qiáng)事務(wù)? 運(yùn)行時(shí)擴(kuò)容? 系統(tǒng),應(yīng)用量級(jí)容錯(cuò)? 保序IProcess要點(diǎn)回顧? 樹狀存儲(chǔ)31應(yīng)用場(chǎng)景特點(diǎn)? 響應(yīng)時(shí)間:實(shí)時(shí)–

毫秒級(jí)別(子圖)–

秒級(jí)別–

分鐘級(jí)別? 圖復(fù)雜度–

節(jié)點(diǎn)簡(jiǎn)單且重、圖復(fù)雜–

節(jié)點(diǎn)簡(jiǎn)單但輕、圖復(fù)雜–

節(jié)點(diǎn)復(fù)雜但輕、圖簡(jiǎn)單–

節(jié)點(diǎn)復(fù)雜且重、圖簡(jiǎn)單應(yīng)用場(chǎng)景特點(diǎn)? 響應(yīng)時(shí)間:實(shí)時(shí)32應(yīng)用場(chǎng)景特點(diǎn)? 語(yǔ)言C++、Java、ShellSQL–

規(guī)則DSL? 模型–

觸發(fā)器、簡(jiǎn)單事件、實(shí)時(shí)MR、圖計(jì)算–

…應(yīng)用場(chǎng)景特點(diǎn)? 語(yǔ)言33應(yīng)用架構(gòu)應(yīng)用架構(gòu)34How

to

use?? 使用IProcess需要準(zhǔn)備什么?–

組件集–

配置(有向圖,事件)–

拓?fù)銱owtouse?? 使用IProcess需要準(zhǔn)備什么?35How

to

use?

A

demo? 簡(jiǎn)化的資訊實(shí)時(shí)搜索Howtouse? Ademo? 簡(jiǎn)化的資訊實(shí)時(shí)搜索36實(shí)時(shí)搜索實(shí)時(shí)搜索37用戶API簡(jiǎn)介? 系統(tǒng)級(jí)(高級(jí)接口)STCacheStrategyLogicalConflictResolverLazyConflictResovlerIUserDefinedConditionISeedGeneratorIPartitioner用戶API簡(jiǎn)介? 系統(tǒng)級(jí)(高級(jí)接口)38用戶API簡(jiǎn)介? 應(yīng)用級(jí)IProcess原生IProcessModule(JobContext)SparkEventProcessor(EventContext)Dumbo(實(shí)時(shí)Mapreduce)MapperPreparerReducerMerger–

使用MapperContext、

ReducerContext等用戶API簡(jiǎn)介? 應(yīng)用級(jí)39系統(tǒng)API簡(jiǎn)介? 重要接口和類TableStrategyStorageStrategySegmentNameMappingSegment。SequencedSegmentTimedSegmentNameMappingRecord系統(tǒng)API簡(jiǎn)介? 重要接口和類40Dumbo例子? 代碼直接復(fù)用,效果大不一樣? 例子(實(shí)時(shí),中間結(jié)果可見(jiàn))wordCount(與全量mapreduce區(qū)別在于:dumbo下

的wordcount,實(shí)時(shí)reduce結(jié)果是可見(jiàn)的,即整個(gè)計(jì)算結(jié)果中間可被用戶訪問(wèn))–

訪問(wèn)記錄一次map、多次reduceSQL執(zhí)行K‐mean聚類實(shí)時(shí)join? 代碼見(jiàn)下頁(yè)Dumbo例子? 代碼直接復(fù)用,效果大不一樣41Dumbo例子? 實(shí)時(shí)join代碼(join好一條輸出一條)classMemberMapper

:public

Mapper{public:void

map(const

string&

key,

const

RecordPtr

value,

MapperContextPtr

context){context‐>add(value‐>get_field("member_id").toString(),value,"member");}}classProductMapper

:

public

Mapper{public:void

map(const

string&

key,

const

RecordPtr

value,

MapperContextPtr

context){context‐>

add

(value‐>get_field("member_id").toString(),

value,

"product");}}Dumbo例子? 實(shí)時(shí)join代碼(join好一條輸出一條)42Dumbo例子?

實(shí)時(shí)join代碼(reduce觸發(fā)的條件在配置文件中,即

joinkey

a

數(shù)

據(jù)

b

數(shù)

據(jù)

都ready(condition),系統(tǒng)才會(huì)實(shí)時(shí)調(diào)用reduce-大家可以比較在storm下實(shí)現(xiàn)實(shí)時(shí)join的代碼)int32_t

reduce(string

key,

map<string,

RecordIterator>

taged_value_iterator,

ReducerContext

context){string

tag_a

=

“member";

string

tag_b

=

“product";RecordIterator

iterator_a

=

taged_value_iterator.find("A")‐>second;

RecordIterator

iterator_b

=

taged_value_iterator.find("B")‐>second;

RecordPtr

record_a

=iterator_a.begin();while(record_a){RecordPtr

record_b

=iterator_b.begin();

while(record_b){Recordresult

=

record_a‐>join(record_b);

context‐>add(result);//生成join的結(jié)果record_b

=

iterator_b.next();}record_a

=

iterator_a.next();}}Dumbo例子?實(shí)時(shí)join代碼(reduce觸發(fā)的條件43觸發(fā)器模式例子? SNS推薦系統(tǒng)–

用戶將公司名修改,引發(fā)推薦的實(shí)時(shí)變化–

某用戶增加一個(gè)好友會(huì)引發(fā)對(duì)自己和對(duì)別人的推薦變化–

實(shí)時(shí)人立方(刪除關(guān)系)風(fēng)控CEP–

離線風(fēng)險(xiǎn)控制–

在線風(fēng)險(xiǎn)控制觸發(fā)器模式例子? SNS推薦系統(tǒng)44系統(tǒng)邊界? 目前的問(wèn)題– 跨語(yǔ)言– 吞吐量– 易用性– 服務(wù)化,云?? 邊界– 計(jì)算可枚舉– 計(jì)算可加– 依賴相關(guān)集較小? 建模介于BSP與DOT之間Runtime的executeplan優(yōu)化系統(tǒng)邊界? 目前的問(wèn)題45目標(biāo)? 打造平臺(tái)–

實(shí)時(shí)計(jì)算–

持續(xù)計(jì)算–

Iprocess將專注于完備事件機(jī)制。? 只提供最基本的功能,提供高度可定制的接口,上層可定制出不同平臺(tái)(計(jì)算模型)和業(yè)務(wù)系統(tǒng)。? 構(gòu)建技術(shù)生態(tài)體系–

合作開發(fā)容器類組件、通用組件–

協(xié)調(diào)可復(fù)用子圖(物化VIEW)、可復(fù)用系統(tǒng)–

Spark系統(tǒng),Dumbo系統(tǒng)目標(biāo)? 打造平臺(tái)46目標(biāo)? 全面提升業(yè)務(wù)的實(shí)時(shí)處理能力–

落地各個(gè)業(yè)務(wù)線? 遠(yuǎn)離業(yè)務(wù)的通用平臺(tái)的生命力不會(huì)強(qiáng)? 搜索,廣告,交易,結(jié)算,風(fēng)控,圖算法,數(shù)據(jù)倉(cāng)庫(kù)…–

針對(duì)業(yè)務(wù)的響應(yīng)時(shí)間? 毫秒、秒級(jí)、分鐘級(jí)? 業(yè)界有影響力的技術(shù)產(chǎn)品–

具有原創(chuàng)技術(shù)并發(fā)表高質(zhì)量有影響力論文? 目前已經(jīng)準(zhǔn)備OSDI2012。–

開源技術(shù)產(chǎn)品目標(biāo)? 全面提升業(yè)務(wù)的實(shí)時(shí)處理能力–落地各個(gè)業(yè)務(wù)線47Iproces

RoadMapIProcess0.1:– 完備事件、圖模型IProcess0.2:– 樹存儲(chǔ)、完善事件、保序等? IProcess0.2.1、0.2.2:– 實(shí)時(shí)搜索、交易IProcess0.3:– 完備事件機(jī)制完善、吞吐量、可擴(kuò)展模型IProcess0.3.x:易用性、落地、SQL規(guī)則引擎、完善分布式事務(wù)IProcess0.4:– 開放控制接口、調(diào)度、迭代計(jì)算、持續(xù)計(jì)算,組件計(jì)算遷移IProcess0.5:– 監(jiān)控、服務(wù)化、IDE、DEBUG環(huán)境。– 基本功能完善IprocesRoadMapIProcess0.1:48淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)淘寶分布式大數(shù)據(jù)49提綱? 背景? 目標(biāo)? 傳統(tǒng)方案與業(yè)界進(jìn)展? 設(shè)計(jì)理念(重點(diǎn))? 技術(shù)架構(gòu)? 要點(diǎn)? 例子? 系統(tǒng)邊界? 計(jì)劃提綱50背景? 應(yīng)用背景–

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

Web

1.0

web

2.0,

publicego

net–

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

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

用戶體驗(yàn)的個(gè)性化和實(shí)時(shí)性–

由點(diǎn)到面?

實(shí)時(shí)搜索、個(gè)人實(shí)時(shí)信息服務(wù)、SNS等背景51背景? 技術(shù)背景MapReduce、Dryad等全量/增量計(jì)算平臺(tái)–

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

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

JobIProcess

Job傳統(tǒng)方案與業(yè)界進(jìn)展? 傳統(tǒng)方案輸入輸入計(jì)算過(guò)程下載輸出獨(dú)立53Hadoop之于實(shí)時(shí)? 問(wèn)題(hadoop本質(zhì)是為全量而生)–

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

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

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

單輸入單輸出,鏈?zhǔn)嚼速M(fèi)嚴(yán)重–

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

粗粒度容錯(cuò),可能會(huì)造成陷阱–

圖計(jì)算不友好–

迭代計(jì)算不友好Hadoop之于實(shí)時(shí)? 問(wèn)題(hadoop本質(zhì)是為全量而生)54圖計(jì)算? MapReduce為什么不適合圖計(jì)算?–

迭代–

邊的量級(jí)遠(yuǎn)大于節(jié)點(diǎn)? 圖計(jì)算特點(diǎn)–

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

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

容錯(cuò)性Google

Pregel?

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

中間結(jié)果不可見(jiàn)超步過(guò)多(IProcess)圖計(jì)算? MapReduce為什么不適合圖計(jì)算?–迭代55Pregel

vs.

IProcess圖計(jì)算IProcess

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

實(shí)時(shí)圖計(jì)算,圖計(jì)算注定慢,但是效果的可以漸顯。Pregelvs.IProcess圖計(jì)算IProcess56迭代計(jì)算? 特點(diǎn)–

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

傳統(tǒng)MR模型,hadoop效率太低HaloopIprocess0.4迭代計(jì)算? 特點(diǎn)57實(shí)時(shí)計(jì)算業(yè)界進(jìn)展S4–

2010年底,Yahoo,0.3,windowtodo實(shí)時(shí)計(jì)算業(yè)界進(jìn)展S458業(yè)界進(jìn)展? Storm:2011.9,twitter,0.5.2業(yè)界進(jìn)展? Storm:2011.9,twitter,0.559業(yè)界進(jìn)展‐Storm業(yè)界進(jìn)展‐Storm60系統(tǒng)邊界S4、Storm–

只能處理“獨(dú)立”的流數(shù)據(jù)–

無(wú)法處理“復(fù)雜”事件(condition),需要用戶handle復(fù)雜的條件–

不能很好的適用于大部分需要相關(guān)數(shù)據(jù)集執(zhí)行計(jì)算和流數(shù)據(jù)保序的實(shí)時(shí)場(chǎng)景–

容錯(cuò)性較差–

集群無(wú)法動(dòng)態(tài)擴(kuò)展系統(tǒng)邊界S4、Storm61業(yè)界進(jìn)展? 其它StreamBaseBorealisStreamInsightPercolatorHbase

coprocessorPregeldremel–

…業(yè)界進(jìn)展? 其它62設(shè)計(jì)理念負(fù)責(zé)任(Condition)–

MapReduce本質(zhì)上保證了Reduce觸發(fā)的條件,即所有map都結(jié)束(但這點(diǎn)很容易被忽視)。–

實(shí)時(shí)計(jì)算Condition很容易被忽略。很多只是考慮了streaming,而沒(méi)有考慮Condition。實(shí)時(shí)(Streaming)成本(Throughput)? 有所為有所不為–

通用計(jì)算框架,用戶組件只需關(guān)心業(yè)務(wù)邏輯。–

涉及到業(yè)務(wù)邏輯統(tǒng)統(tǒng)不做。設(shè)計(jì)理念負(fù)責(zé)任(Condition)63設(shè)計(jì)理念? 舉例–

實(shí)時(shí)JOIN(后面有具體代碼)在storm(不考慮Condition)框架下,實(shí)現(xiàn)join,需要用戶代碼自己hold條件,判斷條件,進(jìn)而觸發(fā)join后的邏輯處理。但在我們的設(shè)計(jì)理念下,這些condition完全可以抽象為復(fù)雜完備事件模型,所以作為通用系統(tǒng)應(yīng)該提供condition的通用功能,用戶只需進(jìn)行配置而不是編碼就可以完成condition,那么實(shí)時(shí)join在iprocess體系下,用戶無(wú)需編碼處理condition,而只需處理join后的邏輯。設(shè)計(jì)理念? 舉例64IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)–

有向圖模型? 節(jié)點(diǎn)為用戶編寫的組件、邊為事件–

觸發(fā)器模式–

完備事件驅(qū)動(dòng)的架構(gòu),定制復(fù)雜完備事件條件–

支持相關(guān)集計(jì)算和Reduce時(shí)數(shù)據(jù)集生成(k‐mean)–

樹存儲(chǔ)模型,支持不同級(jí)別定制不同一致性模型和事務(wù)模型–

可擴(kuò)展的編程模型? 提出并支持樹型實(shí)時(shí)MR和增量/定時(shí)MRIProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)65IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)–

持續(xù)與AdHoc計(jì)算(endpoint)–

微內(nèi)核+組件系統(tǒng)(系統(tǒng)級(jí)組件+用戶組件)–

多任務(wù)服務(wù)化,任務(wù)沙箱,優(yōu)先級(jí),任務(wù)調(diào)度–

兩級(jí)容錯(cuò):應(yīng)用級(jí)和系統(tǒng)級(jí),運(yùn)算時(shí)動(dòng)態(tài)擴(kuò)容–

系統(tǒng)級(jí)組件系統(tǒng):實(shí)時(shí)join、二級(jí)索引、倒排表、物化視圖、counter…–

分布式系統(tǒng)的容錯(cuò),自動(dòng)擴(kuò)展,通訊,調(diào)度–

保序…IProcess? 通用的分布式流數(shù)據(jù)實(shí)時(shí)與持續(xù)計(jì)算平臺(tái)66IProcess? 基礎(chǔ)的運(yùn)行系統(tǒng)–

引入CEP規(guī)則引擎模塊(RPM),類似hive與MR–

引入數(shù)據(jù)集控制(用于機(jī)器學(xué)習(xí)),BI–

引入類SQL語(yǔ)言,DSL引擎–

引入圖計(jì)算模型IProcess? 基礎(chǔ)的運(yùn)行系統(tǒng)67邏輯模型邏輯模型68淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)69淘寶分布式大數(shù)據(jù)及實(shí)時(shí)流數(shù)據(jù)技術(shù)架構(gòu)70持續(xù)計(jì)算Ad‐Hoc

Query–

不可枚舉用戶搜索(online),DB

SQL? 持續(xù)計(jì)算–

計(jì)算相對(duì)固定、可枚舉–

數(shù)據(jù)流動(dòng)SQL、MR持續(xù)計(jì)算Ad‐HocQuery71

IProcess整體架構(gòu)整體拓?fù)?IProcess整體架構(gòu)整體拓?fù)?2運(yùn)行過(guò)程? 三個(gè)步驟–

簡(jiǎn)單事件發(fā)射(分布式)–

復(fù)雜事件完備性判斷(集中式、分布式)?

分布式事務(wù)–

盡量避免(機(jī)制保證)–

強(qiáng)事務(wù)(MVCC)、邏輯事務(wù)、弱事務(wù)–

觸發(fā)下一個(gè)環(huán)節(jié)運(yùn)行過(guò)程? 三個(gè)步驟73IProcess的存儲(chǔ)? 樹結(jié)構(gòu)的存儲(chǔ)–

不同的一致性和事務(wù)模型? 區(qū)分實(shí)時(shí)數(shù)據(jù)與其它數(shù)據(jù)的存儲(chǔ)? 兩級(jí)容錯(cuò)–

應(yīng)用級(jí)和系統(tǒng)級(jí)? 運(yùn)算時(shí)動(dòng)態(tài)擴(kuò)容? 保序Latency、throughput、可靠性–

動(dòng)態(tài)tradeoffIProcess的存儲(chǔ)? 樹結(jié)構(gòu)的存儲(chǔ)74IProcess的存儲(chǔ)MR模型的本質(zhì)Reduce(key,valueList,context)實(shí)現(xiàn)STCacheStrategy接口QStore:持久化存儲(chǔ)。IProcess的存儲(chǔ)MR模型的本質(zhì)Reduce(key,v75IProcess的存儲(chǔ)‐amber與MR容錯(cuò)性的區(qū)別:應(yīng)用級(jí)體現(xiàn)在amber,系統(tǒng)級(jí)體現(xiàn)在st與gtIProcess的存儲(chǔ)‐amber與MR容錯(cuò)性的區(qū)別:應(yīng)用級(jí)76IProcess的存儲(chǔ)‐

GlobalTableHbase維護(hù)分支Segment分裂策略Coprocessor沙箱類Redis接口–

容量規(guī)劃–

剝離行事務(wù)Yahoo

OmidIProcess的存儲(chǔ)‐GlobalTableHbase維77IProcess要點(diǎn)回顧? 完備事件模型–

基礎(chǔ)模型:觸發(fā)器模式? 可擴(kuò)展的編程模型(類似于HIVE與hadoop的關(guān)系)Spark(類似storm,完全的流處理,無(wú)condition)Dumbo(實(shí)時(shí)MapReduce框架)Graph

computing(實(shí)時(shí)pregel)SQL:HiveIProcess要點(diǎn)回顧? 完備事件模型L:Hive78IProcess要點(diǎn)回顧? 樹狀存儲(chǔ)? 事務(wù)模型–

邏輯事務(wù)–

弱事務(wù)–

強(qiáng)事務(wù)? 運(yùn)行時(shí)擴(kuò)容? 系統(tǒng),應(yīng)用量級(jí)容錯(cuò)? 保序IProcess要點(diǎn)回顧? 樹狀存儲(chǔ)79應(yīng)用場(chǎng)景特點(diǎn)? 響應(yīng)時(shí)間:實(shí)時(shí)–

毫秒級(jí)別(子圖)–

秒級(jí)別–

分鐘級(jí)別? 圖復(fù)雜度–

節(jié)點(diǎn)簡(jiǎn)單且重、圖復(fù)雜–

節(jié)點(diǎn)簡(jiǎn)單但輕、圖復(fù)雜–

節(jié)點(diǎn)復(fù)雜但輕、圖簡(jiǎn)單–

節(jié)點(diǎn)復(fù)雜且重、圖簡(jiǎn)單應(yīng)用場(chǎng)景特點(diǎn)? 響應(yīng)時(shí)間:實(shí)時(shí)80應(yīng)用場(chǎng)景特點(diǎn)? 語(yǔ)言C++、Java、ShellSQL–

規(guī)則DSL? 模型–

觸發(fā)器、簡(jiǎn)單事件、實(shí)時(shí)MR、圖計(jì)算–

…應(yīng)用場(chǎng)景特點(diǎn)? 語(yǔ)言81應(yīng)用架構(gòu)應(yīng)用架構(gòu)82How

to

use?? 使用IProcess需要準(zhǔn)備什么?–

組件集–

配置(有向圖,事件)–

拓?fù)銱owtouse?? 使用IProcess需要準(zhǔn)備什么?83How

to

use?

A

demo? 簡(jiǎn)化的資訊實(shí)時(shí)搜索Howtouse? Ademo? 簡(jiǎn)化的資訊實(shí)時(shí)搜索84實(shí)時(shí)搜索實(shí)時(shí)搜索85用戶API簡(jiǎn)介? 系統(tǒng)級(jí)(高級(jí)接口)STCacheStrategyLogicalConflictResolverLazyConflictResovlerIUserDefinedConditionISeedGeneratorIPartitioner用戶API簡(jiǎn)介? 系統(tǒng)級(jí)(高級(jí)接口)86用戶API簡(jiǎn)介? 應(yīng)用級(jí)IProcess原生IProcessModule(JobContext)SparkEventProcessor(EventContext)Dumbo(實(shí)時(shí)Mapreduce)MapperPreparerReducerMerger–

使用MapperContext、

ReducerContext等用戶API簡(jiǎn)介? 應(yīng)用級(jí)87系統(tǒng)API簡(jiǎn)介? 重要接口和類TableStrategyStorageStrategySegmentNameMappingSegment。SequencedSegmentTimedSegmentNameMappingRecord系統(tǒng)API簡(jiǎn)介? 重要接口和類88Dumbo例子? 代碼直接復(fù)用,效果大不一樣? 例子(實(shí)時(shí),中間結(jié)果可見(jiàn))wordCount(與全量mapreduce區(qū)別在于:dumbo下

的wordcount,實(shí)時(shí)reduce結(jié)果是可見(jiàn)的,即整個(gè)計(jì)算結(jié)果中間可被用戶訪問(wèn))–

訪問(wèn)記錄一次map、多次reduceSQL執(zhí)行K‐mean聚類實(shí)時(shí)join? 代碼見(jiàn)下頁(yè)Dumbo例子? 代碼直接復(fù)用,效果大不一樣89Dumbo例子? 實(shí)時(shí)join代碼(join好一條輸出一條)classMemberMapper

:public

Mapper{public:void

map(const

string&

key,

const

RecordPtr

value,

MapperContextPtr

context){context‐>add(value‐>get_field("member_id").toString(),value,"member");}}classProductMapper

:

public

Mapper{public:void

map(const

string&

key,

const

RecordPtr

value,

MapperContextPtr

context){context‐>

add

(value‐>get_field("member_id").toString(),

value,

"product");}}Dumbo例子? 實(shí)時(shí)join代碼(join好一條輸出一條)90Dumbo例子?

實(shí)時(shí)join代碼(reduce觸發(fā)的條件在配置文件中,即

joinkey

a

數(shù)

據(jù)

b

數(shù)

據(jù)

都ready(condition),系統(tǒng)才會(huì)實(shí)時(shí)調(diào)用reduce-大家可以比較在storm下實(shí)現(xiàn)實(shí)時(shí)join的代碼)int32_t

reduce(string

key,

map<string,

RecordIterator>

taged_value_iterator,

ReducerContext

context){string

tag_a

=

“member";

string

tag_b

=

“product";Record

溫馨提示

  • 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)論