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

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

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