Storm的“翻版”:LinkedIn開源實時數(shù)據(jù)處理系統(tǒng)Samza
近日,LinkedIn開源了一項技術(shù)——Samza,它是一個分布式流處理框架,專用于實時數(shù)據(jù)的處理,非常像Twitter的流處理系統(tǒng)Storm。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系統(tǒng)。
Storm和Samza極其相似,就像LinkedIn的Chris Riccomini在博客中闡述的那樣:“[Samza]可以幫助你構(gòu)建應(yīng)用,處理消息隊列——更新數(shù)據(jù)庫、計數(shù)以及其他的聚合、轉(zhuǎn)換消息等等。”而這些其實都是很經(jīng)典的Storm應(yīng)用,只不過遷移到Samza之上了,Samza文檔也對比了這兩個系統(tǒng)。
上個月,Samza在各種論壇和社區(qū)上被廣泛傳播,其中有評論指出了Samza可能帶來的好處:
“跟很多人一樣,我們使用Storm來處理基于Kafka的流數(shù)據(jù),然后,再將這些數(shù)據(jù)發(fā)送到Hadoop上進(jìn)行離線分析。如果能把這三個環(huán)境整合到一起,就是一個很大的勝利。“
表面上看,這似乎是一個很不錯的想法。Apache軟件基金會的項目主頁,介紹了搭配使用Kafka和YARN的特點和優(yōu)勢。
高容錯: 如果服務(wù)器或者處理器出現(xiàn)故障,Samza將與YARN一起重新啟動流處理器。
高可靠性:Samza使用Kafka來保證所有消息都會按照寫入分區(qū)的順序進(jìn)行處理,絕對不會丟失任何消息。
可擴(kuò)展性:Samza在各個等級進(jìn)行分割和分布;Kafka提供一個有序、可分割、可重部署、高容錯的系統(tǒng);YARN提供了一個分布式環(huán)境供Samza容器來運行。

Samza的未來
至于Samza能不能像Storm一樣吸引大量的用戶和社區(qū)參與創(chuàng)新,還有待觀察。但是LinkedIn肯定會像Twitter開發(fā)Storm一樣來保證Samza的發(fā)展,而且后者在可用性上更具優(yōu)勢,畢竟運行在YARN或者M(jìn)esos框架上的Samza多了一些靈活性。
如果Samza未來有一個很好的前景,那么YARN也對得起Hadoop社區(qū)在過去18月的“炒作”,它不僅可以運行Storm,還可以運行Samza,甚至還可以運行其他很多的東西。這點很重要,畢竟很多軟件廠商都把大數(shù)據(jù)的“期貨”(甚至整個未來)壓在了Hadoop上,他們希望這個平臺能成為最后的贏家。

以往對MapReduce技術(shù)的依賴限制了Hadoop的適用性,但是YARN已經(jīng)開放了對大規(guī)模的流處理、交互式SQL查詢、機(jī)器學(xué)習(xí)和圖像處理負(fù)載的支持。隨著技術(shù)的日新月異,Hadoop成為支撐所有大數(shù)據(jù)應(yīng)用庫的想法變得更加現(xiàn)實。