架構(gòu)師必知的開(kāi)源實(shí)時(shí)流處理系統(tǒng)
這里對(duì)目前業(yè)界開(kāi)源的一些實(shí)時(shí)流處理系統(tǒng)做一次小結(jié),作為日后進(jìn)行技術(shù)調(diào)研的參考資料。
S4
S4(Simple Scalable Streaming System)是Yahoo最新發(fā)布的一個(gè)開(kāi)源流計(jì)算平臺(tái),它是一個(gè)通用的、分布式的、可擴(kuò)展性良好、具有分區(qū)容錯(cuò)能力、支持插件的分布式流計(jì)算平臺(tái),在該平臺(tái)上程序員可以很方便地開(kāi)發(fā)面向無(wú)界不間斷流數(shù)據(jù)處理的應(yīng)用,開(kāi)發(fā)語(yǔ)言為Java。
項(xiàng)目鏈接:http://incubator.apache.org/s4/(注:S4 0.5.0已支持TCP鏈接及狀態(tài)恢復(fù)等特性)
Storm
Storm是Twitter開(kāi)源的分布式實(shí)時(shí)計(jì)算系統(tǒng),Storm通過(guò)簡(jiǎn)單的API使開(kāi)發(fā)者可以可靠地處理無(wú)界持續(xù)的流數(shù)據(jù),進(jìn)行實(shí)時(shí)計(jì)算,開(kāi)發(fā)語(yǔ)言為Clojure和Java,非JVM語(yǔ)言可以通過(guò)stdin/stdout以JSON格式協(xié)議與Storm進(jìn)行通信。Storm的應(yīng)用場(chǎng)景很多:實(shí)時(shí)分析、在線機(jī)器學(xué)習(xí)、持續(xù)計(jì)算、分布式RPC、ETL處理,等等。
項(xiàng)目鏈接:http://storm-project.net
StreamBase
StreamBase是一個(gè)關(guān)于復(fù)雜事件處理(CEP)、事件流處理的平臺(tái)。其本身是商業(yè)應(yīng)用軟件,但提供了Developer Edition,開(kāi)發(fā)語(yǔ)言為Java。
項(xiàng)目鏈接:http://www.streambase.com
HStreaming
HStreaming構(gòu)建在Hadoop之上,可以和Hadoop及其生態(tài)系統(tǒng)緊密結(jié)合起來(lái)提供實(shí)時(shí)流計(jì)算服務(wù)。這使得HStreaming的用戶(hù)可以在同一個(gè)生態(tài)系統(tǒng)中分析處理大數(shù)據(jù),開(kāi)發(fā)語(yǔ)言為Java。
項(xiàng)目鏈接:http://www.hstreaming.com
Esper & NEsper
Esper是專(zhuān)門(mén)進(jìn)行復(fù)雜事件處理(CEP)的流處理平臺(tái),Java版本為Esper,.Net版本為NEsper。Esper & NEsper可以方便開(kāi)發(fā)者快速開(kāi)發(fā)部署處理大容量消息和事件的應(yīng)用系統(tǒng),不論是歷史的還是實(shí)時(shí)的消息。
項(xiàng)目鏈接:http://esper.codehaus.org
Kafka
Kafka是Linkedin于2010年12月份開(kāi)源的高吞吐、基于Pub-Sub的分布式消息系統(tǒng),主要用于處理活躍的流式數(shù)據(jù),開(kāi)發(fā)語(yǔ)言為Scala。
項(xiàng)目鏈接:http://incubator.apache.org/kafka
Scribe
Scribe是Facebook開(kāi)源的日志收集系統(tǒng),開(kāi)發(fā)語(yǔ)言為C,通過(guò)Thrift可以支持多種常用客戶(hù)端語(yǔ)言,在Facebook內(nèi)部已經(jīng)得到大量的應(yīng)用。它能夠從各種日志源上收集日志,存儲(chǔ)到一個(gè)中央存儲(chǔ)系統(tǒng)(可以是NFS,分布式文件系統(tǒng)等)上,以便于進(jìn)行集中統(tǒng)計(jì)分析處理。它為日志的“分布式收集,統(tǒng)一處理”提供了一個(gè)可擴(kuò)展的,高容錯(cuò)的方案。Scribe通常與Hadoop結(jié)合使用,Scribe用于向HDFS中push日志,而Hadoop通過(guò)MapReduce作業(yè)進(jìn)行定期處理。
項(xiàng)目鏈接:http://github.com/facebook/scribe
Flume
Flume是Cloudera提供的一個(gè)分布式、可靠的、高可用的日志收集系統(tǒng),用于收集、聚合以及移動(dòng)大量日志數(shù)據(jù),開(kāi)發(fā)語(yǔ)言為Java。Flume支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接收方(可定制)的能力。
項(xiàng)目鏈接:http://incubator.apache.org/flume
【本文來(lái)源:“分布式系統(tǒng)架構(gòu)知識(shí)”公眾號(hào)】