關於Flink的兩三事和簡單介紹

Apache Flink 是一個近期新興起的大數據運算系統,跟以往的系統不同的是,強調以串流運算為核心引擎 (streaming dataflow engine) 支援各式各樣的 data access pattern。

他最常與目前很火紅的Spark做比較,同樣都有「Single Runtime for All Workloads」的核心精神,涵括串流運算 (DataStream API)、批次運算 (DataSet API),也有機器學習 Library (FlinkML) 、 Graph 運算 (Gelly)、與 SQL (Table API)。底層比較,兩者在分散式架構上大量用了Akka ( Spark 為純 Scala,Flink 主要為 Java,Akka Actor 部分參雜了些 Scala ),而 application 撰寫方式都效仿了 Scala 原生的 collection API,寫起來可能會覺得跟 Spark 許多地方很相似。

最大的差別在於有別於Spark的runtime核心為RDD (本質上屬於批次資料的抽象化型態),Flink的runtime為 streaming dataflow engine,所以在串流運算上本質為 true-stream,不像Spark的串流運算屬於 micro-batch。這樣的runtime差異也讓Flink在Machine Learning、Graph等有效能上的差異,詳細的部分以及驗證就希望大家可以多加一起討論了 🙂

Flink 在國外已經開始在熱絡討論了,今年的 Hadoop Europe Summit 的 Abstract 投稿就發現佔了超多場 …
台灣相對來說真的很少人討論他 (也有可能是 Spark 的聲浪真的太大XD),但它的特性或許在未來的IoT、處處都是 streaming data 的時代似乎很有潛力,歡迎有興趣的人以及各路好手一起來了解和討論Flink!

廣告