淺談Flink

淺談Flink
Apache Flink 是一個面向數據流處理和批量數據處理的分佈式的開源計算框架,能夠支持流處理和批處理兩種應用類型。有着低延遲、Exactly-once 保證,而批處理需要支持高吞吐、高效處理的特點。
Flink 完全支持流處理,也就是說作爲流處理看待時,輸入數據流是無界的;批處理被作爲一種特殊的流處理,只是它的輸入數據流被定義爲有界的。這與 Spark streaming 不同,Spark streaming 是將流處理視爲無限個有界的批處理(microbatch)。
Flink 特點
有狀態計算的 Exactly-once 語義。狀態是指 flink 能夠維護數據在時序上的聚類和聚合,同時它的 checkpoint 機制可以方便快速的做出失敗重試;
支持帶有事件時間(event time)語義的流處理和窗口處理。事件時間的語義使流計算的結果更加精確,尤其在事件到達無序或者延遲的情況下;
支持高度靈活的窗口(window)操作。支持基於 time、count、session,以及 data-driven 的窗口操作,能很好的對現實環境中的創建的數據進行建模;
輕量的容錯處理(fault tolerance)。它使得系統既能保持高的吞吐率又能保證 exactly-once 的一致性。通過輕量的 state snapshots 實現;
支持高吞吐、低延遲、高性能的流處理;
支持 savepoints 機制(一般手動觸發),可以將應用的運行狀態保存下來;在升級應用或者處理歷史數據上,能夠做到無狀態丟失和最小停機時間;
支持大規模的集羣模式,支持 yarn、Mesos。可運行在成千上萬的節點上;
支持具有 Backpressure 功能的持續流模型;
Flink 在 JVM 內部實現了自己的內存管理,包括完善的內存架構和 OOM error prevention;
支持迭代計算;
支持程序自動優化:避免特定情況下 Shuffle、排序等昂貴操作,中間結果進行緩存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章