Apache Flink是一個(gè)高效、分布式、基于Java實(shí)現的通用大數據分析引擎,它具有分布式 MapReduce一類(lèi)平臺的高效性、靈活性和擴展性以及并行數據庫查詢(xún)優(yōu)化方案,它支持批量和基于流的數據分析,且提供了基于Java和Scala的API。從Apache官方博客中得知,Flink已于近日升級成為Apache基金會(huì )的頂級項目。Flink項目的副總裁對此評論到:
Flink能夠成為基金會(huì )的頂級項目,自己感到非常高興。自己認為社區的驅動(dòng)將是Flink成長(cháng)的最好保證。Flink逐漸的成長(cháng)以及眾多新人加入該社區真是一件大好事。
從Flink官網(wǎng)得知,其具有如下主要特征:
Flink利用基于內存的數據流并將迭代處理算法深度集成到了系統的運行時(shí)中,這就使得系統能夠以極快的速度來(lái)處理數據密集型和迭代任務(wù)。
當服務(wù)器內存被耗盡時(shí),Flink也能夠很好的運行,這是因為Flink包含自己的內存管理組件、序列化框架和類(lèi)型推理引擎。
利用Java或者Scala語(yǔ)言能夠編寫(xiě)出漂亮、類(lèi)型安全和可為核心的代碼,并能夠在集群上運行所寫(xiě)程序。開(kāi)發(fā)者可以在無(wú)需額外處理就使用Java和Scala數據類(lèi)型
在無(wú)需進(jìn)行任何配置的情況下,Flink內置的優(yōu)化器就能夠以最高效的方式在各種環(huán)境中執行程序。此外,Flink只需要三個(gè)命令就可以運行在Hadoop的新MapReduce框架Yarn上,
Flink支持所有的Hadoop所有的輸入/輸出格式和數據類(lèi)型,這就使得開(kāi)發(fā)者無(wú)需做任何修改就能夠利用Flink運行歷史遺留的MapReduce操作
Flink主要包括基于Java和Scala的用于批量和基于流數據分析的API、優(yōu)化器和具有自定義內存管理功能的分布式運行時(shí)等,其主要架構如下:

更多關(guān)于Flink的相關(guān)信息,請讀者登錄其托管在GitHub的主頁(yè)和其官網(wǎng)查看。另外,開(kāi)源的大數據分析平臺除了Flink外,還包括Apache推出Google Dremel的開(kāi)源版本Apache Drill(2014年12月份升級成為Apache基金會(huì )的頂級項目)、來(lái)自NSA(美國國家安全局)Apache Nifi(2014年12月份貢獻給Apache基金會(huì ))、來(lái)自Cloudera公司開(kāi)發(fā)的實(shí)時(shí)分析系統Impala(受Google Dremel啟發(fā))、加州伯克利大學(xué)AMPLab開(kāi)發(fā)的大數據分析系統Shark 、Facebook開(kāi)源的分布式SQL查詢(xún)引擎Presto、Hortonworks開(kāi)源的實(shí)時(shí)且類(lèi)SQL的即時(shí)查詢(xún)系統Stinger等等。
感謝郭蕾對本文的審校。
給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過(guò)新浪微博(@InfoQ)或者騰訊微博(@InfoQ)關(guān)注我們,并與我們的編輯和其他讀者朋友交流。
聯(lián)系客服