目前由于Apache Spark的不斷發展,其已逐步成為大數據云時代的重要組成部分。但Spark遠非那么完美,當然,它確實在逐步改善中,但正如2.0版所示,如果競爭者提供了一個比Spark更贊的處理方式,必然會吸引開發者的注意。
如下列出的四項很可能會撼動Spark的地位,Spark以對傳統內存批處理和流處理的全新方法而聞名。并且,目前該方法也持續奏效。那接下來這四位又有哪些優勢呢?
Apache Apex
Apache Apex最初由DataTorrent開發出來,目前已作為孵化器項目被捐贈給Apache基金會。它可以在YARN下的Hadoop上執行流處理和批處理。
優點:Apex是真正的流處理,而Spark的流處理實際上只是一個微小的批處理而已。
缺點:雖然Apex經由Hadoop使其本身具備容錯能力,但這意味著Apex和Hadoop是緊密耦合的。而Spark有沒有Hadoop都可以。并且,Apex至今沒有具備Spark的機器學習能力。
Heron
Twitter采用流處理系統Heron替代了Apache Storm,Heron現在作為一個開源項目,可以認為其是Spark的競爭者之一。
優點:Heron通過容器管理調度程序進行流處理。因此,它比其他解決方案更易集成,更易調試,部署和集群運行。為了吸引Storm用戶,它同時兼容Storm API和共享Storm的很多概念。
Apache Flink
Apache Flink是一款大數據流處理引擎,這個目標看起來和Spark類似。
優點:和Apex一樣,Flink是一款真正的流處理模型,而不像Spark那樣只是微小的批處理。Flink對數據流中迭代或者重復的進程有明確規定,并且它有一些與Spark類似的特點,例如機器學習和圖形處理。但是,Flink目前來說仍然是比較新的項目,今年稍早些時候剛推出1.0版本。
Onyx
Onyx是一個無中心,支持云的,容錯的高性能分布式計算系統。根據其官方介紹,Onyx同時具備批處理和流處理能力。
優點:它由基礎語言Clojure而不是Scala編寫而成,Onyx把流處理放在第一位,批處理操作基本上是基于小的流處理操作實現的。Onyx允許開發人員使用Clojure或Java語言,例如Clojure的向量和地圖等,進一步定義如何處理數據。一旦Onyx流行起來,很可能是由于Java的受歡迎程度而不是Clojure的原因。
原文鏈接:http://www.infoworld.com/article/3101729/big-data/big-data-brawlers-4-challengers-to-spark.html