Apache Flink優勢與局限

時間:2017-11-23 14:37:38

    Flink目前是處理框架領域一個獨特的技術。雖然Spark也可以執行批處理和流處理,但Spark的流處理采取的微批架構使其無法適用于很多用例。Flink流處理為先的方法可提供低延遲,高吞吐率,近乎逐項處理的能力。

 

  Flink的很多組件是自行管理的。雖然這種做法較為罕見,但出于性能方面的原因,該技術可自行管理內存,無需依賴原生的Java垃圾回收機制。與Spark不同,待處理數據的特征發生變化后Flink無需手工優化和調整,并且該技術也可以自行處理數據分區和自動緩存等操作。

 

  Flink會通過多種方式對工作進行分許進而優化任務。這種分析在部分程度上類似于SQL查詢規劃器對關系型數據庫所做的優化,可針對特定任務確定最高效的實現方法。該技術還支持多階段并行執行,同時可將受阻任務的數據集合在一起。對于迭代式任務,出于性能方面的考慮,Flink會嘗試在存儲數據的節點上執行相應的計算任務。此外還可進行“增量迭代”,或僅對數據中有改動的部分進行迭代。

 

  在用戶工具方面,Flink提供了基于Web的調度視圖,借此可輕松管理任務并查看系統狀態。用戶也可以查看已提交任務的優化方案,借此了解任務最終是如何在集群中實現的。對于分析類任務,Flink提供了類似SQL的查詢,圖形化處理,以及機器學習庫,此外還支持內存計算。

 

  Flink能很好地與其他組件配合使用。如果配合Hadoop 堆棧使用,該技術可以很好地融入整個環境,在任何時候都只占用必要的資源。該技術可輕松地與YARN、HDFS和Kafka 集成。在兼容包的幫助下,Flink還可以運行為其他處理框架,例如Hadoop和Storm編寫的任務。

 

  目前Flink最大的局限之一在于這依然是一個非常“年幼”的項目。現實環境中該項目的大規模部署尚不如其他處理框架那么常見,對于Flink在縮放能力方面的局限目前也沒有較為深入的研究。隨著快速開發周期的推進和兼容包等功能的完善,當越來越多的組織開始嘗試時,可能會出現越來越多的Flink部署。

? 江苏快3号码表