




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年民間借貸合同模板月息
- 六年級(jí)下冊(cè)數(shù)學(xué)教案-5.2 數(shù)與代數(shù) ︳西師大版
- 二年級(jí)下冊(cè)數(shù)學(xué)教案-4.4勤勞工作-筆算三位數(shù)加減三位數(shù)(一次進(jìn)位、退位) 青島版
- 2025年城鄉(xiāng)結(jié)對(duì)共建協(xié)議書范
- 2025年河北旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案一套
- 化學(xué)-云南省三校2025屆高三2月高考備考聯(lián)考卷(六)試題和答案
- 2025江西省建筑安全員A證考試題庫(kù)及答案
- 2025年鶴崗師范高等??茖W(xué)校單招職業(yè)傾向性測(cè)試題庫(kù)完整版
- 2025年度個(gè)人股份轉(zhuǎn)讓與員工分紅權(quán)合同模板
- 2025年度企業(yè)數(shù)字化轉(zhuǎn)型技術(shù)顧問(wèn)合作協(xié)議
- 腦卒中患者護(hù)理查房
- 智能機(jī)器人與傳感器PPT完整全套教學(xué)課件
- 高效空調(diào)制冷機(jī)房智能控制系統(tǒng)技術(shù)規(guī)程
- 《動(dòng)物王國(guó)開大會(huì)》說(shuō)課PPT
- GB/T 42595-2023承壓設(shè)備修理基本要求
- 春玉米套種秋黃瓜技術(shù)
- 四年級(jí)下冊(cè)勞動(dòng)技術(shù)教案
- 城市軌道交通服務(wù)禮儀和意識(shí)基本知識(shí)
- 科幻小說(shuō)賞讀智慧樹知到答案章節(jié)測(cè)試2023年杭州師范大學(xué)
- 公司設(shè)備日點(diǎn)檢表模板
- (新版)金屬冶煉(鉛、鋅冶煉)主要負(fù)責(zé)人考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論