阿里蔣曉偉:談流計算和批處理引擎Blink院刁,以及Flink和Spark的對比
http://sanwen8.cn/p/2bd8aWI.html
記者:相比Spark曹鸠、Hadoop朽肥、Storm等假哎,是什么樣的場景需求讓阿里搜索團隊選擇了Flink?
蔣曉偉:首先我們希望有個流計算和批處理的一體化處理方案虱疏。Spark和Flink都具有流和批處理能力妆兑,但是他們的做法是相反的魂拦。Spark Streaming是把流轉(zhuǎn)化成一個個小的批來處理,這種方案的一個問題是我們需要的延遲越低搁嗓,額外開銷占的比例就會越大芯勘,這導致了Spark Streaming很難做到秒級甚至亞秒級的延遲。Flink是把批當作一種有限的流腺逛,這種做法的一個特點是在流和批共享大部分代碼的同時還能夠保留批處理特有的一系列的優(yōu)化荷愕。因為這個原因,如果要用一套引擎來解決流和批處理棍矛,那就必須以流處理為基礎安疗,所以我們決定先選擇一個優(yōu)秀的流處理引擎。從功能上流處理可以分為無狀態(tài)的和有狀態(tài)兩種茄靠。在流處理的框架里引入狀態(tài)管理大大提升了系統(tǒng)的表達能力茂契,讓用戶能夠很方便地實現(xiàn)復雜的處理邏輯,是流處理在功能上的一個飛躍慨绳。流處理引擎對一致性的支持可以分為:best effort,at least once 和 exactly once。Exactly once的語義才能真正保證完全的一致性脐雪,F(xiàn)link采用的架構(gòu)比較優(yōu)雅地實現(xiàn)了exactly once的有狀態(tài)流處理厌小。另外在保證了一致性的前提下Flink在性能上也是相當優(yōu)秀的≌角铮總結(jié)一下璧亚,我們覺得在流處理方面Flink在功能,延遲脂信,一致性和性能上綜合來看是目前社區(qū)最優(yōu)秀的癣蟋。所以我們決定采用它來實現(xiàn)流和批的一體化方案。最后狰闪,還有一個很重要的原因是Flink有一個比較活躍的社區(qū)疯搅。
記者:如何看待Flink、Spark埋泵、Hadoop幔欧、Storm等技術發(fā)展和不同場景下的優(yōu)勢對比?比如與Spark相反丽声,F(xiàn)link把批處理化作流處理礁蔗,這種方式在使用時是否有什么限制?
蔣曉偉:大數(shù)據(jù)是從批處理開始的雁社,所以很多系統(tǒng)都是從批處理做起浴井,包括Spark。在批處理上Spark有著較深的積累霉撵,是一個比較優(yōu)秀的系統(tǒng)滋饲。隨著技術的發(fā)展,很多原來只有批處理的業(yè)務都有了實時的需求喊巍,流處理將會變得越來越重要屠缭,甚至成為大數(shù)據(jù)處理的主要場景。Flink把批當作流來處理有個很重要的優(yōu)點是如果我們在流中引入一個blocking的算子崭参,我們還能接著做批處理特有的優(yōu)化呵曹,這個是以流處理為基礎的計算引擎的一大優(yōu)勢。所以我認為在架構(gòu)上這種設計在批處理上是可以做到最優(yōu)的何暮,而且比傳統(tǒng)的做法還有一些特別的優(yōu)勢奄喂,當然工程上的實現(xiàn)也很重要。
大數(shù)據(jù)引擎ApacheFlink升級為Apache頂級項目軟件與服務比特網(wǎng)
http://soft.chinabyte.com/153/13225153.shtml
- 快速
Flink利用基于內(nèi)存的數(shù)據(jù)流并將迭代處理算法深度集成到了系統(tǒng)的運行時中海洼,這就使得系統(tǒng)能夠以極快的速度來處理數(shù)據(jù)密集型和迭代任務跨新。
- 完全兼容Hadoop
Flink支持所有的Hadoop所有的輸入/輸出格式和數(shù)據(jù)類型,這就使得開發(fā)者無需做任何修改就能夠利用Flink運行歷史遺留的MapReduce操作
Flink主要包括基于Java和Scala的用于批量和基于流數(shù)據(jù)分析的API坏逢、優(yōu)化器和具有自定義內(nèi)存管理功能的分布式運行時等域帐,其主要架構(gòu)如下:
開源的大數(shù)據(jù)分析平臺除了Flink外赘被,還包括Apache推出Google Dremel的開源版本Apache Drill(2014年12月份升級成為Apache基金會的頂級項目)、來自NSA(美國國家安全局)Apache Nifi(2014年12月份貢獻給Apache基金會)肖揣、來自Cloudera公司開發(fā)的實時分析系統(tǒng)Impala(受Google Dremel啟發(fā))民假、加州伯克利大學AMPLab開發(fā)的大數(shù)據(jù)分析系統(tǒng)Shark 、Facebook開源的分布式SQL查詢引擎Presto龙优、Hortonworks開源的實時且類SQL的即時查詢系統(tǒng)Stinger等等羊异。