1. 程式人生 > >spark streaming、flink和storm區別淺析

spark streaming、flink和storm區別淺析

1. 介紹

這三個計算框架常常被拿來比較。從我的角度來看,三者的比較可以分為兩類(mini-batches vs. streaming)。spark streaming屬於微批量的偽流式準實時計算框架(spark本身屬於批處理框架)。而flink和storm則作為典型的實時流處理框架。

2. spark vs flink

兩者雖然有很多設計實現思路上比較接近以及互相學習,但是主要區別還是mini-batch和streaming的選擇上。根據實際場景在吞吐量和實時性上做權衡。

3. flink vs storm

名稱 批處理 資料處理保證 api level 容錯機制
storm 不支援 at least once(實現採用record-level acknowledgments),Trident可以支援storm 提供exactly once語義 low record-level acknowledgments
flink 支援 exactly once(實現採用Chandy-Lamport 演算法,即marker-checkpoint ) high marker-checkpoint

4. 其他資料

5. 總結

我寫的比較簡略。強烈建議看看下面我羅列的參考資料,都寫的很不錯。

參考資料:

  1. What is/are the main difference(s) between Flink and Storm?
  2. Introduction to Apache Flink for Spark Developers : Flink vs Spark
  3. Apache Flink和Apache Spark有什麼異同?它們的發展前景分別怎樣?
  4. 實時流處理Storm、Spark Streaming、Samza、Flink孰優孰劣?
  5. Spark與Flink:對比