標籤:
這裡對目前業界開源的一些即時資料流處理系統做一次小結,作為日後進行技術調研的參考資料。
S4
S4(Simple Scalable Streaming System)是Yahoo最新發行的一個開源StreamCompute平台,它是一個通用的、分布式的、可擴充性良好、具有分區容錯能力、支援外掛程式的分布式StreamCompute平台,在該平台上程式員可以很方便地開發面向無界不間斷流資料處理的應用,開發語言為Java。
項目連結:http://incubator.apache.org/s4/(註:S4 0.5.0已支援TCP連結及狀態恢複等特性)
Storm
Storm是Twitter開源的分布式即時計算系統,Storm通過簡單的API使開發人員可以可靠地處理無界持續的流資料,進行即時計算,開發語言為Clojure和Java,非JVM語言可以通過stdin/stdout以JSON格式協議與Storm進行通訊。Storm的應用情境很多:即時分析、線上機器學習、持續計算、分布式RPC、ETL處理,等等。
項目連結:http://storm-project.net
StreamBase
StreamBase是一個關於複雜事件處理(CEP)、事件流處理的平台。其本身是商業應用軟體,但提供了Developer Edition,開發語言為Java。
項目連結:http://www.streambase.com
HStreaming
HStreaming構建在Hadoop之上,可以和Hadoop及其生態系統緊密結合起來提供即時資料流計算服務。這使得HStreaming的使用者可以在同一個生態系統中分析處理大資料,開發語言為Java。
項目連結:http://www.hstreaming.com
Esper & NEsper
Esper是專門進行複雜事件處理(CEP)的流處理平台,Java版本為Esper,.Net版本為NEsper。Esper & NEsper可以方便開發人員快速開發部署處理大容量訊息和事件的應用系統,不論是曆史的還是即時的訊息。
項目連結:http://esper.codehaus.org
Kafka
Kafka是Linkedin於2010年12月份開源的高吞吐、基於Pub-Sub的分布式訊息系統,主要用於處理活躍的流式資料,開發語言為Scala。
項目連結:http://incubator.apache.org/kafka
Scribe
Scribe是Facebook開源的日誌收集系統,開發語言為C,通過Thrift可以支援多種常用用戶端語言,在Facebook內部已經得到大量的應用。它能夠從各種日誌源上收集日誌,儲存到一個中央儲存系統(可以是NFS,Distributed File System等)上,以便於進行集中統計分析處理。它為日誌的“分布式收集,統一處理”提供了一個可擴充的,高容錯的方案。Scribe通常與Hadoop結合使用,Scribe用於向HDFS中push日誌,而Hadoop通過MapReduce作業進行定期處理。
項目連結:http://github.com/facebook/scribe
Flume
Flume是Cloudera提供的一個分布式、可靠的、高可用的日誌收集系統,用於收集、彙總以及移動大量日誌資料,開發語言為Java。Flume支援在日誌系統中定製各類資料發送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接收方(可定製)的能力。
項目連結:http://incubator.apache.org/flume
技術調研參考——業界開源即時資料流處理系統小結