這三個計算框架經常被拿來比較。從個人角度來看,三者的比較能夠分爲兩類(mini-batches vs. streaming)。spark streaming屬於微批量的僞流式準實時計算框架(spark自己屬於批處理框架)。而flink和storm則做爲典型的實時流處理框架。html
二者雖然有不少設計實現思路上比較接近以及互相學習,可是主要區別仍是mini-batch和streaming的選擇上。根據實際場景在吞吐量和實時性上作權衡。算法
名稱 | 批處理 | 數據處理保證 | 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 |
我寫的比較簡略。強烈建議看看下面我羅列的參考資料,都寫的很不錯。api
參考資料:框架