日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php框架 > 框架設計 > 說說阿里增量計算框架Galaxy :增量計算模型 (二)

說說阿里增量計算框架Galaxy :增量計算模型 (二)

來源:程序員人生   發(fā)布時間:2015-01-21 09:02:18 閱讀次數(shù):7743次

背景

在前1篇文章中,介紹到了Galaxy的增量計算性質,其state是框架內部管理的,和與Storm的簡單對照。這篇文章將講述更多Galaxy增量模型的事情,并介紹這套增量模型之上實現(xiàn)的Galaxy SQL和Galaxy Operator,同時會從增量角度對照Spark Streaming。


Galaxy MRM增量與Spark Streaming

MRM模型全稱為MapReduceMerge,比MapReduce做了1個Merge操作。merge階段可與state交互,讀寫某個key的oldValue,并且這個merge接口還具有rollback語義。在流計算場景下,數(shù)據(jù)按時間或條數(shù)切成不同的批,批內可以做普遍意義下的MapReduce操作,批之間需要merge階段做跨批聚合的計算。大家可以對照Spark Streaming的UpdateStateByKey操作,在1個DStream內,各個時間段內的RDD(即各批)可以通過這個接口更新1次任務內的state。而galaxy的merge本質上是1次add的進程,對應的rollback是1次delete的進程,從數(shù)據(jù)庫的語義看,兩個進程合起來相當因而update操作,而這倆進程都是根據(jù)1個primary key來做的,所以這件事情與spark streaming的updateStateByKey做的事情是1樣的,但是細看的話,二者還是存在很大的差異。



galaxy的state暴露給計算task是線程級別獨享的,spark streaming的state是任務內全局同享的。線程級別獨享的優(yōu)點,就在于同1批數(shù)據(jù),按key shuffle以后來到不同的merge計算節(jié)點,各自不會阻塞各自的計算進程,而spark streaming的updateStateByKey操作會阻塞其他rdd的計算,雖然spark streaming能做到DStream內各個RDD并發(fā)履行,但是只要有state操作,終究還是落到了時間序列上的阻塞。本時間點StateRDD的計算需要依賴前1時間點父StateRDD的計算結果,而批內各個key對state操作是相互阻塞和影響的,所以著眼在這層barrier上的話,galaxy的merge進程更加精細,add和delete進程是分開的,批內的key是落到不同線程上計算而state是線程內獨享的。


Galaxy有3種Model,分別是MapOnlyModel,MapReduceModel,MapReduceMergeModel。即,你可使用M Model和MR Model做普通的流計算或小批計算,當需要跨批操作的時候就使用MRM Model。Model之間是隨便組合串連的,接口相比MapReduce實際上是相當靈活乃至過于靈活的,靈活的弊端是計算模型上帶來復雜性。


Galaxy SQL

Galaxy SQL是1種StreamSQL,而且是目前業(yè)界沒有的。從語法上Galaxy SQL貼近HiveSQL,但又有些流計算語義上(無窮數(shù)據(jù)流)不能支持的語法,比如limit, order by。

Intel那邊弄了1個Spark Streaming + Spark SQL的結合,叫StreamSQL。利用Spark SQL里的SchemaRDD,為Spark Streaming流進來的RDD帶上了Schema元信息。借助Spark Streaming支持的操作,這類StreamSQL可以做滑窗效果的sql計算。但是真正跨批的增量語義(不單單是固定的window跨批計算),是支持不了的。Galaxy SQL可以做真實的增量流式SQL。


舉個最簡單的例子,

insert into t2 select t1.a as k, count(t1.b) as cnt from t1 group by t1.a; select count(cnt) from t2 group by t2.cnt;


第1句sql中,根據(jù)t1的a字段分組,求了個count值。第2句sql中,t2表分組的字段變成t1表里count出來的cnt值。大家可以想象,在流計算場景里,第1次a求count出來的值多是100,下1個時間點,同1個a的key,count出來的值就是200了,這時候候,100這個cnt已丟到t2表里計算出結果了,現(xiàn)在100已更新到200了,200這個新的值的計算是簡單的,但問題是如何把t2里之前100的計算結果撤消呢?


可以仔細想一想,StreamSQL是做不了這樣的sql的,本質上是由于spark streaming不支持這樣的操作。Galaxy計算框架的merge階段可以做rollback操作,回滾之前"毛病"的狀態(tài),使得Galaxy SQL可以做散布式流式SQL。


Galaxy Operator

Galaxy Operator是Galaxy MRM編程接口之上的1層DAG封裝,兼具易用性和表達能力。

算子層終究將映照成多個Galaxy的MRM Model,使用戶可以更加關注計算邏輯,屏蔽較復雜的MRM Model,特別是merge階段。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生

------分隔線----------------------------
分享到:
------分隔線----------------------------
為碼而活
積分:4237
15粉絲
7關注
欄目熱點
關閉
程序員人生
主站蜘蛛池模板: 不卡在线| 激情在线视频网站 | 欧美一区二区三区久久 | 国产精品国产三级国产专播精品人 | 国产精品视频在线观看 | 黄色片网站免费看 | 午夜三级 | 成人自拍偷拍 | 麻豆视频在线观看免费网站黄 | 欧美国产精品一区二区三区 | 中文字幕日韩一区二区 | 久久久免费 | 1000部精品久久久久久久久 | 日本一区二区三区在线观看 | 日韩一区二区在线免费观看 | 日本一二区视频 | 精品久久电影 | 久久久极品 | 黄色在线观看 | 伊人伊成久久人综合网站 | 在线黄网站 | 欧美激情视频一区二区三区不卡 | 五月婷婷综合网 | 国产精品久久久久久久久免费 | 久久免费视频观看 | 99久久精品国产麻豆演员表 | 久久欧美| 福利视频三区 | 午夜精品久久久久久久久久久 | 玖玖在线播放 | 欧美日韩中文在线 | 国产精品美女久久久久人 | 欧美三区四区 | 九九在线精品 | 国产成人精品一区二三区 | 黄色成人在线视频 | 久久视频免费观看 | 精品一区在线 | 81精品国产乱码久久久久久 | 国产精品日韩精品 | 麻豆精品国产 |