天天看點

大資料分析引擎Apache Flink   

Flink能夠成為基金會的頂級項目,自己感到非常高興。自己認為社群的驅動将是Flink成長的最好保證。Flink逐漸的成長以及衆多新人加入該社群真是一件大好事。

從Flink官網得知,其具有如下主要特征:

Flink利用基于記憶體的資料流并将疊代處理算法深度內建到了系統的運作時中,這就使得系統能夠以極快的速度來處理資料密集型和疊代任務。

當伺服器記憶體被耗盡時,Flink也能夠很好的運作,這是因為Flink包含自己的記憶體管理元件、序列化架構和類型推理引擎。

利用Java或者Scala語言能夠編寫出漂亮、類型安全和可為核心的代碼,并能夠在叢集上運作所寫程式。開發者可以在無需額外處理就使用Java和Scala資料類型

在無需進行任何配置的情況下,Flink内置的優化器就能夠以最高效的方式在各種環境中執行程式。此外,Flink隻需要三個指令就可以運作在Hadoop的新MapReduce架構Yarn上,

Flink支援所有的Hadoop所有的輸入/輸出格式和資料類型,這就使得開發者無需做任何修改就能夠利用Flink運作曆史遺留的MapReduce操作

Flink主要包括基于Java和Scala的用于批量和基于流資料分析的API、優化器和具有自定義記憶體管理功能的分布式運作時等,其主要架構如下:

 摘自 http://www.infoq.com/cn/news/2015/01/big-data-apache-flink-project

1. 低延遲的流處理器

2.豐富的API能夠幫助程式員快速開發流資料應用

3.靈活的操作狀态和流視窗

4.高效的流與資料的容錯很多公司正在從傳統的批處理架構遷移到實時流架構,在分布式系統如HDFS中靜态檔案和關系資料庫在通過事件流得到增強,使用批處理實作的工作任務能夠在流進行中以更低延遲實作。

<a href="http://www.jdon.com/imageShowInHtml.jsp?id=31241&amp;oid=23146402" target="_blank"></a>

這種轉型有許多方式,首先,許多資料集和用例都是基于事件的(比如機器日志等),其次流處理在某種程度上可以處理更複雜的工作任務,流處理原則上能夠以低延時執行大部分批處理的工作任務,這樣,當流處理能夠處理同樣的工作任務時,幾乎沒有理由再選擇使用hadoop這樣的批處理架構了。最後,一些新的應用類型諸如處理敏感資料經常需要持續查詢,這些應用隻能使用流架構實作。一個典型的流架構由下面三個元件組成:

<a href="http://www.jdon.com/imageShowInHtml.jsp?id=31242&amp;oid=23146402" target="_blank"></a>

1. 一個子產品元件是從各種資料源收集事件流

2. 一個子產品元件內建各種流,使它們可用于直接消費。

3.一個子產品元件用來分析消費這些流資料

第一步是從各種資料源收集事件,事件來自于資料庫,機器産生日志,事件傳感器等,這些事件需要清理 組織化到一個中心。

第二步,在一個中心內建各種流,典型工具如Apache Kafka,Kafka提供一個broker功能,以失敗容錯的高可靠性用來收集流 日志或緩沖資料,以及分發到各種對不同流感興趣的消費者那裡進行分析。

第三步,對流進行真正的分析,比如建立計數器 實作聚合,Map/Reduce之類計算,将各種流Join一起分析等等,提供了資料分析所需的一步到位的進階程式設計。Apache Flink正是這步實作。

<a href="http://www.jdon.com/imageShowInHtml.jsp?id=31243&amp;oid=23146402" target="_blank"></a>

摘自 http://www.jdon.com/47283

Flink 的其他文檔 https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-flink/

 http://flink.apache.org/introduction.html

本文轉自茄子_2008部落格園部落格,原文連結:http://www.cnblogs.com/xd502djj/p/6930007.html,如需轉載請自行聯系原作者。