流式計算框架調研
阿新 • • 發佈:2019-01-25
三大主流框架
對比
框架 | 特點 | 支援的語言 | 接入者 |
---|---|---|---|
Apache Storm | Clojure語言實現,訊息的最小單位為元祖,可增量計算,延遲最低(毫秒級),也支援批處理 | 號稱任何語言(Java,PHP,Ruby,Perl,JS) | Twitter,雅虎,Spotify,The Weather Channel等 |
Apache Spark | Scala語言實現,微批處理(按時間間隔預先將其切分為一段一段的批處理作業),延遲比Storm高,高吞吐 | Scala,Python,Java | 亞馬遜,雅虎,NASA JPL,eBay還有百度等,國內知名度高,使用的公司也多,見 |
Apache Samza | Scala語言實現,訊息佇列,一次一條訊息,也支援批處理,依賴Hadoop的Yarn和Apache Kafka | Scala,Java | LinkedIn,Intuit,Metamarkets,Quantiply,Fortscale |
調研結果
- 仍然使用
Spark Streaming
,直接使用官方scala
的api
,因為其他封裝(包括官方提供的python)不穩定,且浪費掉了效能 Strom
雖然提供PHP API
,但Strom
的編寫語言是Clojure
,對於一些二次開發需求是不利的,且國內使用的不多。- 成本的對比:繼續使用
Spark Streaming
的成本在於要學習Scala語言,是短期的成本。而更換框架的成本是持續的,持續的踩坑,之前沒用過,低吞吐的特性是否滿足要求,心裡沒底。 - 為何直接放棄了
Samza
,相比來說小眾了。